Python 如何创建时间变量

Python 如何创建时间变量,python,netcdf,netcdf4,nco,ncl,Python,Netcdf,Netcdf4,Nco,Ncl,我有很多netCDF文件,它们是使用python gdal库从tif文件创建的。 我想将这些文件合并到一个大的nc文件中,但它们没有时间变量 我尝试了所描述的方法,但当我要看到生成的大型nc文件的每个频带的时间戳时,所有文件的时间戳都是零 此外,ncdump-h文件名的结果如下所示 netcdf g2_BIOPAR_VCI_201701010000_AFRI_PROBAV_V1.0.h5_trans { dimensions: lon = 10081 ; lat

我有很多netCDF文件,它们是使用python gdal库从tif文件创建的。 我想将这些文件合并到一个大的nc文件中,但它们没有时间变量

我尝试了所描述的方法,但当我要看到生成的大型nc文件的每个频带的时间戳时,所有文件的时间戳都是零

此外,
ncdump-h文件名的结果如下所示

netcdf g2_BIOPAR_VCI_201701010000_AFRI_PROBAV_V1.0.h5_trans {
dimensions:
        lon = 10081 ;
        lat = 8961 ;
variables:
        char crs ;
                crs:grid_mapping_name = "latitude_longitude" ;
                crs:long_name = "CRS definition" ;
                crs:longitude_of_prime_meridian = 0. ;
                crs:semi_major_axis = 6378137. ;
                crs:inverse_flattening = 298.257223563 ;
                crs:spatial_ref = "GEOGCS[\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0],UNIT[\"degree\",0.0174532925199433],AUTHORITY[\"EPSG\",\"4326\"]]" ;
                crs:GeoTransform = "-30 0.008927685745461759 0 40 0 -0.008927575047427742 " ;
        double lat(lat) ;
                lat:standard_name = "latitude" ;
                lat:long_name = "latitude" ;
                lat:units = "degrees_north" ;
        double lon(lon) ;
                lon:standard_name = "longitude" ;
                lon:long_name = "longitude" ;
                lon:units = "degrees_east" ;
        byte Band1(lat, lon) ;
                Band1:long_name = "GDAL Band Number 1" ;
                Band1:_Unsigned = "true" ;
                Band1:valid_range = 0s, 255s ;
                Band1:_FillValue = 0b ;
                Band1:VCI_CLASS = "DATA" ;
                Band1:VCI_MISSING_VALUE = 251 ;
                Band1:VCI_NB_BYTES = "Uint8" ;
                Band1:VCI_OFFSET = -5 ;
                Band1:VCI_ORDER_BYTES = 1 ;
                Band1:VCI_PRODUCT = "VCI" ;
                Band1:VCI_SCALING_FACTOR = 0.5f ;
                Band1:grid_mapping = "crs" ;

// global attributes:
                :GDAL_ARCHIVE_FACILITY = "VITO" ;
                :GDAL_CENTRE = "VITO" ;
                :GDAL_ELLIPSOID_NAME = "WGS84" ;
                :GDAL_GEODATE_NAME = "WGS84" ;
                :GDAL_INSTRUMENT_ID = "VGT3" ;
                :GDAL_LAT = 40 ;
                :GDAL_LONG = -30 ;
                :GDAL_OTHER = "GLS" ;
                :GDAL_OVERALL_QUALITY_FLAG = "OK" ;
                :GDAL_PIXEL_SIZE = "1km" ;
                :GDAL_PRODUCT = "Mars VCI data" ;
                :GDAL_PRODUCT_ALGORITHM_VERSION = 1. ;
                :GDAL_PRODUCT_TIME = "2017-01-12" ;
                :GDAL_PROJECTION_NAME = "PlateCarree" ;
                :GDAL_REGION_NAME = "AFRI" ;
                :GDAL_SATELLITE = "PROBAV" ;
                :GDAL_TEMPORAL_NOMINAL = "2017-01-01" ;
                :GDAL_TEMPORAL_START = "2017-01-01" ;
                :GDAL_TEMPORAL_STOP = "2017-01-10" ;
                :Conventions = "CF-1.5" ;
                :GDAL = "GDAL 2.3.3, released 2018/12/14" ;
                :history = "Mon Feb 24 14:29:37 2020: GDAL CreateCopy( ../2017/20170101/g2_BIOPAR_VCI_201701010000_AFRI_PROBAV_V1.0.h5_trans.nc, ... )" ;
我想做的是创建一个时间变量,它将与全局变量相同:GDAL_TEMPORAL_STOP并将每个文件合并到一个大型nc文件中。理想情况下,我更喜欢用python实现这一点。我假设有某种方法可以复制
全局变量:GDAL\u TEMPORAL\u STOP=“2017-01-10”并将其作为每个文件的时间变量进行复制,但我找不到方法来执行此操作,因此我需要您的帮助。

用于此操作的NCO工具是:

在文件上循环执行此操作,然后与
ncrcat
连接在一起:

ncrcat out*.nc final_out.nc
但是,
GDAL\u TEMPORAL\u STOP
是一个属性,它是一个字符数组(也称为字符串),而不是一个变量。您可能需要时间的数值。这使事情变得复杂,不幸的是,我没有时间提供完整的答案,因为我刚刚注意到您更喜欢Python,所以我将把它留在这里。祝你好运

ncrcat out*.nc final_out.nc