最近被要求处理ERA5数据,记录一下整个过程。包括API下载,nc转tif,重投影和重采样。 并尝试上传到好久不用的博客上面
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 import cdsapiclient = cdsapi.Client() dataset = 'reanalysis-era5-land' request = { 'variable' : [ 'volumetric_soil_water_layer_1' , 'volumetric_soil_water_layer_2' , 'volumetric_soil_water_layer_3' , 'volumetric_soil_water_layer_4' , ], 'year' : ['2022' ], 'month' : ['09' ], 'day' : [ '01' , '02' , '03' , '04' , '05' , '06' , '07' , '08' , '09' , '10' , ], 'time' : [ '00:00' , '01:00' , '02:00' , '03:00' , '04:00' , '05:00' , '06:00' , '07:00' , '08:00' , '09:00' , '10:00' , '11:00' , '12:00' , '13:00' , '14:00' , '15:00' , '16:00' , '17:00' , '18:00' , '19:00' , '20:00' , '21:00' , '22:00' , '23:00' , ], 'area' : [30.5 , 101 , 28.5 , 103 ], 'format' : 'netcdf' , } output_file = 'era5_land_soil_moisture_2022_luding.nc' client.retrieve(dataset, request, output_file) print (f"数据已下载至 {output_file} " )
2025-04-23 22:51:47,413 INFO [2024-09-26T00:00:00] Watch our [Forum](https://forum.ecmwf.int/) for Announcements, news and other discussed topics.
2025-04-23 22:51:47,413 WARNING [2024-06-16T00:00:00] CDS API syntax is changed and some keys or parameter names may have also changed. To avoid requests failing, please use the "Show API request code" tool on the dataset Download Form to check you are using the correct syntax for your API request.
2025-04-23 22:51:48,894 INFO Request ID is c53b2027-1503-4416-adb2-9b78a28a2df9
2025-04-23 22:51:49,167 INFO status has been updated to accepted
2025-04-23 22:52:03,788 INFO status has been updated to running
2025-04-23 22:52:12,035 INFO status has been updated to successful
d1d6058e5fbb3e8b362ef33a256c849e.zip: 0%| | 0.00/588k [00:00<?, ?B/s]
数据已下载至 era5_land_soil_moisture_2022_luding.nc
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 import osimport netCDF4 as ncimport numpy as npimport rasteriofrom rasterio.transform import from_boundsfrom datetime import datetime, timedeltanc_file = r'E:\zjh\spring2025\ERA5_Land\luding\html\data_0.nc' output_dir = 'output_tifs' os.makedirs(output_dir, exist_ok=True ) def print_nc_variables (nc_file ): try : with nc.Dataset(nc_file) as ds: print ("NetCDF File Variables and Metadata:" ) print ("=" * 50 ) for var_name in ds.variables: var = ds.variables[var_name] print (f"Variable: {var_name} " ) print (f" Dimensions: {var.dimensions} " ) print (f" Shape: {var.shape} " ) print (f" Attributes: {var.ncattrs()} " ) for attr in var.ncattrs(): print (f" {attr} : {var.getncattr(attr)} " ) print ("-" * 50 ) except Exception as e: print (f"Error reading NetCDF file: {e} " ) def save_to_geotiff (data, lon, lat, output_path, time_str, var_name ): crs = 'EPSG:4326' west, east = lon.min (), lon.max () north, south = lat.max (), lat.min () transform = from_bounds(west, south, east, north, data.shape[1 ], data.shape[0 ]) profile = { 'driver' : 'GTiff' , 'height' : data.shape[0 ], 'width' : data.shape[1 ], 'count' : 1 , 'dtype' : data.dtype, 'crs' : crs, 'transform' : transform, 'nodata' : -9999 , } with rasterio.open (output_path, 'w' , **profile) as dst: dst.write(data, 1 ) dst.update_tags( variable=var_name, time=time_str, description=f'ERA5-Land {var_name} at {time_str} ' ) def process_netcdf_to_geotiff (nc_file, output_dir ): try : with nc.Dataset(nc_file) as ds: lon = ds.variables['longitude' ][:] lat = ds.variables['latitude' ][:] time_var = ds.variables['valid_time' ] time_units = time_var.units time_values = time_var[:] time_datetimes = nc.num2date(time_values, units=time_units, calendar='gregorian' ) variables = ['swvl1' , 'swvl2' , 'swvl3' , 'swvl4' ] for var_name in variables: var_data = ds.variables[var_name][:] var_short = var_name.replace('volumetric_soil_water_layer_' , 'swvl' ) var_dir = os.path.join(output_dir, var_short) os.makedirs(var_dir, exist_ok=True ) for t, time_dt in enumerate (time_datetimes): data = var_data[t, :, :] data = np.where(data.mask, -9999 , data) if np.ma.is_masked(data) else data time_str = time_dt.strftime('%Y%m%d_%H%M' ) output_path = os.path.join(var_dir, f'{var_short} _{time_str} .tif' ) save_to_geotiff(data, lon, lat, output_path, time_str, var_name) print (f'Saved: {output_path} ' ) except Exception as e: print (f"Error processing NetCDF file: {e} " )
1 print_nc_variables(nc_file)
输出内容1
NetCDF File Variables and Metadata:
==================================================
Variable: number
Dimensions: ()
Shape: ()
Attributes: ['long_name', 'units', 'standard_name']
long_name: ensemble member numerical id
units: 1
standard_name: realization
--------------------------------------------------
Variable: valid_time
Dimensions: ('valid_time',)
Shape: (240,)
Attributes: ['long_name', 'standard_name', 'units', 'calendar']
long_name: time
standard_name: time
units: seconds since 1970-01-01
calendar: proleptic_gregorian
--------------------------------------------------
Variable: latitude
Dimensions: ('latitude',)
Shape: (21,)
Attributes: ['_FillValue', 'units', 'standard_name', 'long_name', 'stored_direction']
_FillValue: nan
units: degrees_north
standard_name: latitude
long_name: latitude
stored_direction: decreasing
--------------------------------------------------
Variable: longitude
Dimensions: ('longitude',)
Shape: (21,)
Attributes: ['_FillValue', 'units', 'standard_name', 'long_name']
_FillValue: nan
units: degrees_east
standard_name: longitude
long_name: longitude
--------------------------------------------------
Variable: expver
Dimensions: ('valid_time',)
Shape: (240,)
Attributes: []
--------------------------------------------------
Variable: swvl1
Dimensions: ('valid_time', 'latitude', 'longitude')
Shape: (240, 21, 21)
Attributes: ['_FillValue', 'GRIB_paramId', 'GRIB_dataType', 'GRIB_numberOfPoints', 'GRIB_typeOfLevel', 'GRIB_stepUnits', 'GRIB_stepType', 'GRIB_gridType', 'GRIB_uvRelativeToGrid', 'GRIB_NV', 'GRIB_Nx', 'GRIB_Ny', 'GRIB_cfName', 'GRIB_cfVarName', 'GRIB_gridDefinitionDescription', 'GRIB_iDirectionIncrementInDegrees', 'GRIB_iScansNegatively', 'GRIB_jDirectionIncrementInDegrees', 'GRIB_jPointsAreConsecutive', 'GRIB_jScansPositively', 'GRIB_latitudeOfFirstGridPointInDegrees', 'GRIB_latitudeOfLastGridPointInDegrees', 'GRIB_longitudeOfFirstGridPointInDegrees', 'GRIB_longitudeOfLastGridPointInDegrees', 'GRIB_missingValue', 'GRIB_name', 'GRIB_shortName', 'GRIB_totalNumber', 'GRIB_units', 'long_name', 'units', 'standard_name', 'GRIB_depthBelowLandLayer', 'coordinates']
_FillValue: nan
GRIB_paramId: 39
GRIB_dataType: an
GRIB_numberOfPoints: 441
GRIB_typeOfLevel: depthBelowLandLayer
GRIB_stepUnits: 1
GRIB_stepType: instant
GRIB_gridType: regular_ll
GRIB_uvRelativeToGrid: 0
GRIB_NV: 0
GRIB_Nx: 21
GRIB_Ny: 21
GRIB_cfName: unknown
GRIB_cfVarName: swvl1
GRIB_gridDefinitionDescription: Latitude/Longitude Grid
GRIB_iDirectionIncrementInDegrees: 0.1
GRIB_iScansNegatively: 0
GRIB_jDirectionIncrementInDegrees: 0.1
GRIB_jPointsAreConsecutive: 0
GRIB_jScansPositively: 0
GRIB_latitudeOfFirstGridPointInDegrees: 30.5
GRIB_latitudeOfLastGridPointInDegrees: 28.5
GRIB_longitudeOfFirstGridPointInDegrees: 101.0
GRIB_longitudeOfLastGridPointInDegrees: 103.0
GRIB_missingValue: 3.4028234663852886e+38
GRIB_name: Volumetric soil water layer 1
GRIB_shortName: swvl1
GRIB_totalNumber: 0
GRIB_units: m**3 m**-3
long_name: Volumetric soil water layer 1
units: m**3 m**-3
standard_name: unknown
GRIB_depthBelowLandLayer: 0.0
coordinates: number valid_time latitude longitude expver
--------------------------------------------------
Variable: swvl2
Dimensions: ('valid_time', 'latitude', 'longitude')
Shape: (240, 21, 21)
Attributes: ['_FillValue', 'GRIB_paramId', 'GRIB_dataType', 'GRIB_numberOfPoints', 'GRIB_typeOfLevel', 'GRIB_stepUnits', 'GRIB_stepType', 'GRIB_gridType', 'GRIB_uvRelativeToGrid', 'GRIB_NV', 'GRIB_Nx', 'GRIB_Ny', 'GRIB_cfName', 'GRIB_cfVarName', 'GRIB_gridDefinitionDescription', 'GRIB_iDirectionIncrementInDegrees', 'GRIB_iScansNegatively', 'GRIB_jDirectionIncrementInDegrees', 'GRIB_jPointsAreConsecutive', 'GRIB_jScansPositively', 'GRIB_latitudeOfFirstGridPointInDegrees', 'GRIB_latitudeOfLastGridPointInDegrees', 'GRIB_longitudeOfFirstGridPointInDegrees', 'GRIB_longitudeOfLastGridPointInDegrees', 'GRIB_missingValue', 'GRIB_name', 'GRIB_shortName', 'GRIB_totalNumber', 'GRIB_units', 'long_name', 'units', 'standard_name', 'GRIB_depthBelowLandLayer', 'coordinates']
_FillValue: nan
GRIB_paramId: 40
GRIB_dataType: an
GRIB_numberOfPoints: 441
GRIB_typeOfLevel: depthBelowLandLayer
GRIB_stepUnits: 1
GRIB_stepType: instant
GRIB_gridType: regular_ll
GRIB_uvRelativeToGrid: 0
GRIB_NV: 0
GRIB_Nx: 21
GRIB_Ny: 21
GRIB_cfName: unknown
GRIB_cfVarName: swvl2
GRIB_gridDefinitionDescription: Latitude/Longitude Grid
GRIB_iDirectionIncrementInDegrees: 0.1
GRIB_iScansNegatively: 0
GRIB_jDirectionIncrementInDegrees: 0.1
GRIB_jPointsAreConsecutive: 0
GRIB_jScansPositively: 0
GRIB_latitudeOfFirstGridPointInDegrees: 30.5
GRIB_latitudeOfLastGridPointInDegrees: 28.5
GRIB_longitudeOfFirstGridPointInDegrees: 101.0
GRIB_longitudeOfLastGridPointInDegrees: 103.0
GRIB_missingValue: 3.4028234663852886e+38
GRIB_name: Volumetric soil water layer 2
GRIB_shortName: swvl2
GRIB_totalNumber: 0
GRIB_units: m**3 m**-3
long_name: Volumetric soil water layer 2
units: m**3 m**-3
standard_name: unknown
GRIB_depthBelowLandLayer: 7.0
coordinates: number valid_time latitude longitude expver
--------------------------------------------------
Variable: swvl3
Dimensions: ('valid_time', 'latitude', 'longitude')
Shape: (240, 21, 21)
Attributes: ['_FillValue', 'GRIB_paramId', 'GRIB_dataType', 'GRIB_numberOfPoints', 'GRIB_typeOfLevel', 'GRIB_stepUnits', 'GRIB_stepType', 'GRIB_gridType', 'GRIB_uvRelativeToGrid', 'GRIB_NV', 'GRIB_Nx', 'GRIB_Ny', 'GRIB_cfName', 'GRIB_cfVarName', 'GRIB_gridDefinitionDescription', 'GRIB_iDirectionIncrementInDegrees', 'GRIB_iScansNegatively', 'GRIB_jDirectionIncrementInDegrees', 'GRIB_jPointsAreConsecutive', 'GRIB_jScansPositively', 'GRIB_latitudeOfFirstGridPointInDegrees', 'GRIB_latitudeOfLastGridPointInDegrees', 'GRIB_longitudeOfFirstGridPointInDegrees', 'GRIB_longitudeOfLastGridPointInDegrees', 'GRIB_missingValue', 'GRIB_name', 'GRIB_shortName', 'GRIB_totalNumber', 'GRIB_units', 'long_name', 'units', 'standard_name', 'GRIB_depthBelowLandLayer', 'coordinates']
_FillValue: nan
GRIB_paramId: 41
GRIB_dataType: an
GRIB_numberOfPoints: 441
GRIB_typeOfLevel: depthBelowLandLayer
GRIB_stepUnits: 1
GRIB_stepType: instant
GRIB_gridType: regular_ll
GRIB_uvRelativeToGrid: 0
GRIB_NV: 0
GRIB_Nx: 21
GRIB_Ny: 21
GRIB_cfName: unknown
GRIB_cfVarName: swvl3
GRIB_gridDefinitionDescription: Latitude/Longitude Grid
GRIB_iDirectionIncrementInDegrees: 0.1
GRIB_iScansNegatively: 0
GRIB_jDirectionIncrementInDegrees: 0.1
GRIB_jPointsAreConsecutive: 0
GRIB_jScansPositively: 0
GRIB_latitudeOfFirstGridPointInDegrees: 30.5
GRIB_latitudeOfLastGridPointInDegrees: 28.5
GRIB_longitudeOfFirstGridPointInDegrees: 101.0
GRIB_longitudeOfLastGridPointInDegrees: 103.0
GRIB_missingValue: 3.4028234663852886e+38
GRIB_name: Volumetric soil water layer 3
GRIB_shortName: swvl3
GRIB_totalNumber: 0
GRIB_units: m**3 m**-3
long_name: Volumetric soil water layer 3
units: m**3 m**-3
standard_name: unknown
GRIB_depthBelowLandLayer: 28.0
coordinates: number valid_time latitude longitude expver
--------------------------------------------------
Variable: swvl4
Dimensions: ('valid_time', 'latitude', 'longitude')
Shape: (240, 21, 21)
Attributes: ['_FillValue', 'GRIB_paramId', 'GRIB_dataType', 'GRIB_numberOfPoints', 'GRIB_typeOfLevel', 'GRIB_stepUnits', 'GRIB_stepType', 'GRIB_gridType', 'GRIB_uvRelativeToGrid', 'GRIB_NV', 'GRIB_Nx', 'GRIB_Ny', 'GRIB_cfName', 'GRIB_cfVarName', 'GRIB_gridDefinitionDescription', 'GRIB_iDirectionIncrementInDegrees', 'GRIB_iScansNegatively', 'GRIB_jDirectionIncrementInDegrees', 'GRIB_jPointsAreConsecutive', 'GRIB_jScansPositively', 'GRIB_latitudeOfFirstGridPointInDegrees', 'GRIB_latitudeOfLastGridPointInDegrees', 'GRIB_longitudeOfFirstGridPointInDegrees', 'GRIB_longitudeOfLastGridPointInDegrees', 'GRIB_missingValue', 'GRIB_name', 'GRIB_shortName', 'GRIB_totalNumber', 'GRIB_units', 'long_name', 'units', 'standard_name', 'GRIB_depthBelowLandLayer', 'coordinates']
_FillValue: nan
GRIB_paramId: 42
GRIB_dataType: an
GRIB_numberOfPoints: 441
GRIB_typeOfLevel: depthBelowLandLayer
GRIB_stepUnits: 1
GRIB_stepType: instant
GRIB_gridType: regular_ll
GRIB_uvRelativeToGrid: 0
GRIB_NV: 0
GRIB_Nx: 21
GRIB_Ny: 21
GRIB_cfName: unknown
GRIB_cfVarName: swvl4
GRIB_gridDefinitionDescription: Latitude/Longitude Grid
GRIB_iDirectionIncrementInDegrees: 0.1
GRIB_iScansNegatively: 0
GRIB_jDirectionIncrementInDegrees: 0.1
GRIB_jPointsAreConsecutive: 0
GRIB_jScansPositively: 0
GRIB_latitudeOfFirstGridPointInDegrees: 30.5
GRIB_latitudeOfLastGridPointInDegrees: 28.5
GRIB_longitudeOfFirstGridPointInDegrees: 101.0
GRIB_longitudeOfLastGridPointInDegrees: 103.0
GRIB_missingValue: 3.4028234663852886e+38
GRIB_name: Volumetric soil water layer 4
GRIB_shortName: swvl4
GRIB_totalNumber: 0
GRIB_units: m**3 m**-3
long_name: Volumetric soil water layer 4
units: m**3 m**-3
standard_name: unknown
GRIB_depthBelowLandLayer: 100.0
coordinates: number valid_time latitude longitude expver
--------------------------------------------------
1 2 3 process_netcdf_to_geotiff(nc_file, output_dir) print ("Processing complete. GeoTIFF files saved in:" , output_dir)
Error processing NetCDF file: The WKT could not be parsed. OGR Error code 6
Processing complete. GeoTIFF files saved in: output_tifs
分界线
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 import osimport netCDF4 as ncimport numpy as npfrom osgeo import gdal, osrnc_file = r'E:\zjh\spring2025\ERA5_Land\luding\html\data_0.nc' output_dir = 'output_tifs' os.makedirs(output_dir, exist_ok=True ) def print_nc_variables (nc_file ): try : with nc.Dataset(nc_file) as ds: print ("NetCDF File Variables and Metadata:" ) print ("=" * 50 ) for var_name in ds.variables: var = ds.variables[var_name] print (f"Variable: {var_name} " ) print (f" Dimensions: {var.dimensions} " ) print (f" Shape: {var.shape} " ) print (f" Attributes: {var.ncattrs()} " ) for attr in var.ncattrs(): print (f" {attr} : {var.getncattr(attr)} " ) print ("-" * 50 ) except Exception as e: print (f"Error reading NetCDF file: {e} " ) def save_to_geotiff (data, lon, lat, output_path, time_str, var_name ): try : rows, cols = data.shape driver = gdal.GetDriverByName('GTiff' ) if driver is None : raise ValueError("GDAL GeoTIFF driver not available" ) dst_ds = driver.Create( output_path, cols, rows, 1 , gdal.GDT_Float32, options=['COMPRESS=LZW' ] ) if dst_ds is None : raise ValueError(f"Failed to create GeoTIFF: {output_path} " ) lon_min, lon_max = lon.min (), lon.max () lat_min, lat_max = lat.min (), lat.max () lon_res = (lon_max - lon_min) / (cols - 1 ) lat_res = (lat_max - lat_min) / (rows - 1 ) geotransform = (lon_min, lon_res, 0 , lat_max, 0 , -lat_res) dst_ds.SetGeoTransform(geotransform) srs = osr.SpatialReference() srs.ImportFromEPSG(4326 ) dst_ds.SetProjection(srs.ExportToWkt()) band = dst_ds.GetRasterBand(1 ) band.SetNoDataValue(-9999 ) band.WriteArray(data) dst_ds.SetMetadata({ 'variable' : var_name, 'time' : time_str, 'description' : f'ERA5-Land {var_name} at {time_str} ' }) band.FlushCache() dst_ds.FlushCache() dst_ds = None print (f'Saved: {output_path} ' ) except Exception as e: print (f"Error saving GeoTIFF {output_path} : {e} " ) def process_netcdf_to_geotiff (nc_file, output_dir ): try : with nc.Dataset(nc_file) as ds: lon = ds.variables['longitude' ][:] lat = ds.variables['latitude' ][:] time_var = ds.variables['valid_time' ] time_units = time_var.units time_values = time_var[:] time_datetimes = nc.num2date(time_values, units=time_units, calendar='proleptic_gregorian' ) variables = ['swvl1' , 'swvl2' , 'swvl3' , 'swvl4' ] for var_name in variables: var_data = ds.variables[var_name][:] var_short = var_name missing_value = ds.variables[var_name].getncattr('GRIB_missingValue' ) if 'GRIB_missingValue' in ds.variables[var_name].ncattrs() else None fill_value = ds.variables[var_name].getncattr('_FillValue' ) if '_FillValue' in ds.variables[var_name].ncattrs() else None var_dir = os.path.join(output_dir, var_short) os.makedirs(var_dir, exist_ok=True ) for t, time_dt in enumerate (time_datetimes): data = var_data[t, :, :] if np.ma.is_masked(data): data = np.where(data.mask, -9999 , data) else : if missing_value is not None : data = np.where(data == missing_value, -9999 , data) if fill_value is not None and not np.isnan(fill_value): data = np.where(data == fill_value, -9999 , data) data = np.where(np.isnan(data), -9999 , data) time_str = time_dt.strftime('%Y%m%d_%H%M' ) output_path = os.path.join(var_dir, f'{var_short} _{time_str} .tif' ) save_to_geotiff(data, lon, lat, output_path, time_str, var_name) except Exception as e: print (f"Error processing NetCDF file: {e} " )
1 2 3 4 gdal.UseExceptions() print_nc_variables(nc_file)
输出内容2
NetCDF File Variables and Metadata:
==================================================
Variable: number
Dimensions: ()
Shape: ()
Attributes: ['long_name', 'units', 'standard_name']
long_name: ensemble member numerical id
units: 1
standard_name: realization
--------------------------------------------------
Variable: valid_time
Dimensions: ('valid_time',)
Shape: (240,)
Attributes: ['long_name', 'standard_name', 'units', 'calendar']
long_name: time
standard_name: time
units: seconds since 1970-01-01
calendar: proleptic_gregorian
--------------------------------------------------
Variable: latitude
Dimensions: ('latitude',)
Shape: (21,)
Attributes: ['_FillValue', 'units', 'standard_name', 'long_name', 'stored_direction']
_FillValue: nan
units: degrees_north
standard_name: latitude
long_name: latitude
stored_direction: decreasing
--------------------------------------------------
Variable: longitude
Dimensions: ('longitude',)
Shape: (21,)
Attributes: ['_FillValue', 'units', 'standard_name', 'long_name']
_FillValue: nan
units: degrees_east
standard_name: longitude
long_name: longitude
--------------------------------------------------
Variable: expver
Dimensions: ('valid_time',)
Shape: (240,)
Attributes: []
--------------------------------------------------
Variable: swvl1
Dimensions: ('valid_time', 'latitude', 'longitude')
Shape: (240, 21, 21)
Attributes: ['_FillValue', 'GRIB_paramId', 'GRIB_dataType', 'GRIB_numberOfPoints', 'GRIB_typeOfLevel', 'GRIB_stepUnits', 'GRIB_stepType', 'GRIB_gridType', 'GRIB_uvRelativeToGrid', 'GRIB_NV', 'GRIB_Nx', 'GRIB_Ny', 'GRIB_cfName', 'GRIB_cfVarName', 'GRIB_gridDefinitionDescription', 'GRIB_iDirectionIncrementInDegrees', 'GRIB_iScansNegatively', 'GRIB_jDirectionIncrementInDegrees', 'GRIB_jPointsAreConsecutive', 'GRIB_jScansPositively', 'GRIB_latitudeOfFirstGridPointInDegrees', 'GRIB_latitudeOfLastGridPointInDegrees', 'GRIB_longitudeOfFirstGridPointInDegrees', 'GRIB_longitudeOfLastGridPointInDegrees', 'GRIB_missingValue', 'GRIB_name', 'GRIB_shortName', 'GRIB_totalNumber', 'GRIB_units', 'long_name', 'units', 'standard_name', 'GRIB_depthBelowLandLayer', 'coordinates']
_FillValue: nan
GRIB_paramId: 39
GRIB_dataType: an
GRIB_numberOfPoints: 441
GRIB_typeOfLevel: depthBelowLandLayer
GRIB_stepUnits: 1
GRIB_stepType: instant
GRIB_gridType: regular_ll
GRIB_uvRelativeToGrid: 0
GRIB_NV: 0
GRIB_Nx: 21
GRIB_Ny: 21
GRIB_cfName: unknown
GRIB_cfVarName: swvl1
GRIB_gridDefinitionDescription: Latitude/Longitude Grid
GRIB_iDirectionIncrementInDegrees: 0.1
GRIB_iScansNegatively: 0
GRIB_jDirectionIncrementInDegrees: 0.1
GRIB_jPointsAreConsecutive: 0
GRIB_jScansPositively: 0
GRIB_latitudeOfFirstGridPointInDegrees: 30.5
GRIB_latitudeOfLastGridPointInDegrees: 28.5
GRIB_longitudeOfFirstGridPointInDegrees: 101.0
GRIB_longitudeOfLastGridPointInDegrees: 103.0
GRIB_missingValue: 3.4028234663852886e+38
GRIB_name: Volumetric soil water layer 1
GRIB_shortName: swvl1
GRIB_totalNumber: 0
GRIB_units: m**3 m**-3
long_name: Volumetric soil water layer 1
units: m**3 m**-3
standard_name: unknown
GRIB_depthBelowLandLayer: 0.0
coordinates: number valid_time latitude longitude expver
--------------------------------------------------
Variable: swvl2
Dimensions: ('valid_time', 'latitude', 'longitude')
Shape: (240, 21, 21)
Attributes: ['_FillValue', 'GRIB_paramId', 'GRIB_dataType', 'GRIB_numberOfPoints', 'GRIB_typeOfLevel', 'GRIB_stepUnits', 'GRIB_stepType', 'GRIB_gridType', 'GRIB_uvRelativeToGrid', 'GRIB_NV', 'GRIB_Nx', 'GRIB_Ny', 'GRIB_cfName', 'GRIB_cfVarName', 'GRIB_gridDefinitionDescription', 'GRIB_iDirectionIncrementInDegrees', 'GRIB_iScansNegatively', 'GRIB_jDirectionIncrementInDegrees', 'GRIB_jPointsAreConsecutive', 'GRIB_jScansPositively', 'GRIB_latitudeOfFirstGridPointInDegrees', 'GRIB_latitudeOfLastGridPointInDegrees', 'GRIB_longitudeOfFirstGridPointInDegrees', 'GRIB_longitudeOfLastGridPointInDegrees', 'GRIB_missingValue', 'GRIB_name', 'GRIB_shortName', 'GRIB_totalNumber', 'GRIB_units', 'long_name', 'units', 'standard_name', 'GRIB_depthBelowLandLayer', 'coordinates']
_FillValue: nan
GRIB_paramId: 40
GRIB_dataType: an
GRIB_numberOfPoints: 441
GRIB_typeOfLevel: depthBelowLandLayer
GRIB_stepUnits: 1
GRIB_stepType: instant
GRIB_gridType: regular_ll
GRIB_uvRelativeToGrid: 0
GRIB_NV: 0
GRIB_Nx: 21
GRIB_Ny: 21
GRIB_cfName: unknown
GRIB_cfVarName: swvl2
GRIB_gridDefinitionDescription: Latitude/Longitude Grid
GRIB_iDirectionIncrementInDegrees: 0.1
GRIB_iScansNegatively: 0
GRIB_jDirectionIncrementInDegrees: 0.1
GRIB_jPointsAreConsecutive: 0
GRIB_jScansPositively: 0
GRIB_latitudeOfFirstGridPointInDegrees: 30.5
GRIB_latitudeOfLastGridPointInDegrees: 28.5
GRIB_longitudeOfFirstGridPointInDegrees: 101.0
GRIB_longitudeOfLastGridPointInDegrees: 103.0
GRIB_missingValue: 3.4028234663852886e+38
GRIB_name: Volumetric soil water layer 2
GRIB_shortName: swvl2
GRIB_totalNumber: 0
GRIB_units: m**3 m**-3
long_name: Volumetric soil water layer 2
units: m**3 m**-3
standard_name: unknown
GRIB_depthBelowLandLayer: 7.0
coordinates: number valid_time latitude longitude expver
--------------------------------------------------
Variable: swvl3
Dimensions: ('valid_time', 'latitude', 'longitude')
Shape: (240, 21, 21)
Attributes: ['_FillValue', 'GRIB_paramId', 'GRIB_dataType', 'GRIB_numberOfPoints', 'GRIB_typeOfLevel', 'GRIB_stepUnits', 'GRIB_stepType', 'GRIB_gridType', 'GRIB_uvRelativeToGrid', 'GRIB_NV', 'GRIB_Nx', 'GRIB_Ny', 'GRIB_cfName', 'GRIB_cfVarName', 'GRIB_gridDefinitionDescription', 'GRIB_iDirectionIncrementInDegrees', 'GRIB_iScansNegatively', 'GRIB_jDirectionIncrementInDegrees', 'GRIB_jPointsAreConsecutive', 'GRIB_jScansPositively', 'GRIB_latitudeOfFirstGridPointInDegrees', 'GRIB_latitudeOfLastGridPointInDegrees', 'GRIB_longitudeOfFirstGridPointInDegrees', 'GRIB_longitudeOfLastGridPointInDegrees', 'GRIB_missingValue', 'GRIB_name', 'GRIB_shortName', 'GRIB_totalNumber', 'GRIB_units', 'long_name', 'units', 'standard_name', 'GRIB_depthBelowLandLayer', 'coordinates']
_FillValue: nan
GRIB_paramId: 41
GRIB_dataType: an
GRIB_numberOfPoints: 441
GRIB_typeOfLevel: depthBelowLandLayer
GRIB_stepUnits: 1
GRIB_stepType: instant
GRIB_gridType: regular_ll
GRIB_uvRelativeToGrid: 0
GRIB_NV: 0
GRIB_Nx: 21
GRIB_Ny: 21
GRIB_cfName: unknown
GRIB_cfVarName: swvl3
GRIB_gridDefinitionDescription: Latitude/Longitude Grid
GRIB_iDirectionIncrementInDegrees: 0.1
GRIB_iScansNegatively: 0
GRIB_jDirectionIncrementInDegrees: 0.1
GRIB_jPointsAreConsecutive: 0
GRIB_jScansPositively: 0
GRIB_latitudeOfFirstGridPointInDegrees: 30.5
GRIB_latitudeOfLastGridPointInDegrees: 28.5
GRIB_longitudeOfFirstGridPointInDegrees: 101.0
GRIB_longitudeOfLastGridPointInDegrees: 103.0
GRIB_missingValue: 3.4028234663852886e+38
GRIB_name: Volumetric soil water layer 3
GRIB_shortName: swvl3
GRIB_totalNumber: 0
GRIB_units: m**3 m**-3
long_name: Volumetric soil water layer 3
units: m**3 m**-3
standard_name: unknown
GRIB_depthBelowLandLayer: 28.0
coordinates: number valid_time latitude longitude expver
--------------------------------------------------
Variable: swvl4
Dimensions: ('valid_time', 'latitude', 'longitude')
Shape: (240, 21, 21)
Attributes: ['_FillValue', 'GRIB_paramId', 'GRIB_dataType', 'GRIB_numberOfPoints', 'GRIB_typeOfLevel', 'GRIB_stepUnits', 'GRIB_stepType', 'GRIB_gridType', 'GRIB_uvRelativeToGrid', 'GRIB_NV', 'GRIB_Nx', 'GRIB_Ny', 'GRIB_cfName', 'GRIB_cfVarName', 'GRIB_gridDefinitionDescription', 'GRIB_iDirectionIncrementInDegrees', 'GRIB_iScansNegatively', 'GRIB_jDirectionIncrementInDegrees', 'GRIB_jPointsAreConsecutive', 'GRIB_jScansPositively', 'GRIB_latitudeOfFirstGridPointInDegrees', 'GRIB_latitudeOfLastGridPointInDegrees', 'GRIB_longitudeOfFirstGridPointInDegrees', 'GRIB_longitudeOfLastGridPointInDegrees', 'GRIB_missingValue', 'GRIB_name', 'GRIB_shortName', 'GRIB_totalNumber', 'GRIB_units', 'long_name', 'units', 'standard_name', 'GRIB_depthBelowLandLayer', 'coordinates']
_FillValue: nan
GRIB_paramId: 42
GRIB_dataType: an
GRIB_numberOfPoints: 441
GRIB_typeOfLevel: depthBelowLandLayer
GRIB_stepUnits: 1
GRIB_stepType: instant
GRIB_gridType: regular_ll
GRIB_uvRelativeToGrid: 0
GRIB_NV: 0
GRIB_Nx: 21
GRIB_Ny: 21
GRIB_cfName: unknown
GRIB_cfVarName: swvl4
GRIB_gridDefinitionDescription: Latitude/Longitude Grid
GRIB_iDirectionIncrementInDegrees: 0.1
GRIB_iScansNegatively: 0
GRIB_jDirectionIncrementInDegrees: 0.1
GRIB_jPointsAreConsecutive: 0
GRIB_jScansPositively: 0
GRIB_latitudeOfFirstGridPointInDegrees: 30.5
GRIB_latitudeOfLastGridPointInDegrees: 28.5
GRIB_longitudeOfFirstGridPointInDegrees: 101.0
GRIB_longitudeOfLastGridPointInDegrees: 103.0
GRIB_missingValue: 3.4028234663852886e+38
GRIB_name: Volumetric soil water layer 4
GRIB_shortName: swvl4
GRIB_totalNumber: 0
GRIB_units: m**3 m**-3
long_name: Volumetric soil water layer 4
units: m**3 m**-3
standard_name: unknown
GRIB_depthBelowLandLayer: 100.0
coordinates: number valid_time latitude longitude expver
--------------------------------------------------
1 2 3 process_netcdf_to_geotiff(nc_file, output_dir) print ("Processing complete. GeoTIFF files saved in:" , output_dir)
输出内容3
Saved: output_tifs\swvl1\swvl1_20220901_0000.tif
Saved: output_tifs\swvl1\swvl1_20220901_0100.tif
Saved: output_tifs\swvl1\swvl1_20220901_0200.tif
Saved: output_tifs\swvl1\swvl1_20220901_0300.tif
Saved: output_tifs\swvl1\swvl1_20220901_0400.tif
Saved: output_tifs\swvl1\swvl1_20220901_0500.tif
Saved: output_tifs\swvl1\swvl1_20220901_0600.tif
Saved: output_tifs\swvl1\swvl1_20220901_0700.tif
Saved: output_tifs\swvl1\swvl1_20220901_0800.tif
Saved: output_tifs\swvl1\swvl1_20220901_0900.tif
Saved: output_tifs\swvl1\swvl1_20220901_1000.tif
Saved: output_tifs\swvl1\swvl1_20220901_1100.tif
Saved: output_tifs\swvl1\swvl1_20220901_1200.tif
Saved: output_tifs\swvl1\swvl1_20220901_1300.tif
Saved: output_tifs\swvl1\swvl1_20220901_1400.tif
Saved: output_tifs\swvl1\swvl1_20220901_1500.tif
Saved: output_tifs\swvl1\swvl1_20220901_1600.tif
Saved: output_tifs\swvl1\swvl1_20220901_1700.tif
Saved: output_tifs\swvl1\swvl1_20220901_1800.tif
Saved: output_tifs\swvl1\swvl1_20220901_1900.tif
Saved: output_tifs\swvl1\swvl1_20220901_2000.tif
Saved: output_tifs\swvl1\swvl1_20220901_2100.tif
Saved: output_tifs\swvl1\swvl1_20220901_2200.tif
Saved: output_tifs\swvl1\swvl1_20220901_2300.tif
Saved: output_tifs\swvl1\swvl1_20220902_0000.tif
Saved: output_tifs\swvl1\swvl1_20220902_0100.tif
Saved: output_tifs\swvl1\swvl1_20220902_0200.tif
Saved: output_tifs\swvl1\swvl1_20220902_0300.tif
Saved: output_tifs\swvl1\swvl1_20220902_0400.tif
Saved: output_tifs\swvl1\swvl1_20220902_0500.tif
Saved: output_tifs\swvl1\swvl1_20220902_0600.tif
Saved: output_tifs\swvl1\swvl1_20220902_0700.tif
Saved: output_tifs\swvl1\swvl1_20220902_0800.tif
Saved: output_tifs\swvl1\swvl1_20220902_0900.tif
Saved: output_tifs\swvl1\swvl1_20220902_1000.tif
Saved: output_tifs\swvl1\swvl1_20220902_1100.tif
Saved: output_tifs\swvl1\swvl1_20220902_1200.tif
Saved: output_tifs\swvl1\swvl1_20220902_1300.tif
Saved: output_tifs\swvl1\swvl1_20220902_1400.tif
Saved: output_tifs\swvl1\swvl1_20220902_1500.tif
Saved: output_tifs\swvl1\swvl1_20220902_1600.tif
Saved: output_tifs\swvl1\swvl1_20220902_1700.tif
Saved: output_tifs\swvl1\swvl1_20220902_1800.tif
Saved: output_tifs\swvl1\swvl1_20220902_1900.tif
Saved: output_tifs\swvl1\swvl1_20220902_2000.tif
Saved: output_tifs\swvl1\swvl1_20220902_2100.tif
Saved: output_tifs\swvl1\swvl1_20220902_2200.tif
Saved: output_tifs\swvl1\swvl1_20220902_2300.tif
Saved: output_tifs\swvl1\swvl1_20220903_0000.tif
Saved: output_tifs\swvl1\swvl1_20220903_0100.tif
Saved: output_tifs\swvl1\swvl1_20220903_0200.tif
Saved: output_tifs\swvl1\swvl1_20220903_0300.tif
Saved: output_tifs\swvl1\swvl1_20220903_0400.tif
Saved: output_tifs\swvl1\swvl1_20220903_0500.tif
Saved: output_tifs\swvl1\swvl1_20220903_0600.tif
Saved: output_tifs\swvl1\swvl1_20220903_0700.tif
Saved: output_tifs\swvl1\swvl1_20220903_0800.tif
Saved: output_tifs\swvl1\swvl1_20220903_0900.tif
Saved: output_tifs\swvl1\swvl1_20220903_1000.tif
Saved: output_tifs\swvl1\swvl1_20220903_1100.tif
Saved: output_tifs\swvl1\swvl1_20220903_1200.tif
Saved: output_tifs\swvl1\swvl1_20220903_1300.tif
Saved: output_tifs\swvl1\swvl1_20220903_1400.tif
Saved: output_tifs\swvl1\swvl1_20220903_1500.tif
Saved: output_tifs\swvl1\swvl1_20220903_1600.tif
Saved: output_tifs\swvl1\swvl1_20220903_1700.tif
Saved: output_tifs\swvl1\swvl1_20220903_1800.tif
Saved: output_tifs\swvl1\swvl1_20220903_1900.tif
Saved: output_tifs\swvl1\swvl1_20220903_2000.tif
Saved: output_tifs\swvl1\swvl1_20220903_2100.tif
Saved: output_tifs\swvl1\swvl1_20220903_2200.tif
Saved: output_tifs\swvl1\swvl1_20220903_2300.tif
Saved: output_tifs\swvl1\swvl1_20220904_0000.tif
Saved: output_tifs\swvl1\swvl1_20220904_0100.tif
Saved: output_tifs\swvl1\swvl1_20220904_0200.tif
Saved: output_tifs\swvl1\swvl1_20220904_0300.tif
Saved: output_tifs\swvl1\swvl1_20220904_0400.tif
Saved: output_tifs\swvl1\swvl1_20220904_0500.tif
Saved: output_tifs\swvl1\swvl1_20220904_0600.tif
Saved: output_tifs\swvl1\swvl1_20220904_0700.tif
Saved: output_tifs\swvl1\swvl1_20220904_0800.tif
Saved: output_tifs\swvl1\swvl1_20220904_0900.tif
Saved: output_tifs\swvl1\swvl1_20220904_1000.tif
Saved: output_tifs\swvl1\swvl1_20220904_1100.tif
Saved: output_tifs\swvl1\swvl1_20220904_1200.tif
Saved: output_tifs\swvl1\swvl1_20220904_1300.tif
Saved: output_tifs\swvl1\swvl1_20220904_1400.tif
Saved: output_tifs\swvl1\swvl1_20220904_1500.tif
Saved: output_tifs\swvl1\swvl1_20220904_1600.tif
Saved: output_tifs\swvl1\swvl1_20220904_1700.tif
Saved: output_tifs\swvl1\swvl1_20220904_1800.tif
Saved: output_tifs\swvl1\swvl1_20220904_1900.tif
Saved: output_tifs\swvl1\swvl1_20220904_2000.tif
Saved: output_tifs\swvl1\swvl1_20220904_2100.tif
Saved: output_tifs\swvl1\swvl1_20220904_2200.tif
Saved: output_tifs\swvl1\swvl1_20220904_2300.tif
Saved: output_tifs\swvl1\swvl1_20220905_0000.tif
Saved: output_tifs\swvl1\swvl1_20220905_0100.tif
Saved: output_tifs\swvl1\swvl1_20220905_0200.tif
Saved: output_tifs\swvl1\swvl1_20220905_0300.tif
Saved: output_tifs\swvl1\swvl1_20220905_0400.tif
Saved: output_tifs\swvl1\swvl1_20220905_0500.tif
Saved: output_tifs\swvl1\swvl1_20220905_0600.tif
Saved: output_tifs\swvl1\swvl1_20220905_0700.tif
Saved: output_tifs\swvl1\swvl1_20220905_0800.tif
Saved: output_tifs\swvl1\swvl1_20220905_0900.tif
Saved: output_tifs\swvl1\swvl1_20220905_1000.tif
Saved: output_tifs\swvl1\swvl1_20220905_1100.tif
Saved: output_tifs\swvl1\swvl1_20220905_1200.tif
Saved: output_tifs\swvl1\swvl1_20220905_1300.tif
Saved: output_tifs\swvl1\swvl1_20220905_1400.tif
Saved: output_tifs\swvl1\swvl1_20220905_1500.tif
Saved: output_tifs\swvl1\swvl1_20220905_1600.tif
Saved: output_tifs\swvl1\swvl1_20220905_1700.tif
Saved: output_tifs\swvl1\swvl1_20220905_1800.tif
Saved: output_tifs\swvl1\swvl1_20220905_1900.tif
Saved: output_tifs\swvl1\swvl1_20220905_2000.tif
Saved: output_tifs\swvl1\swvl1_20220905_2100.tif
Saved: output_tifs\swvl1\swvl1_20220905_2200.tif
Saved: output_tifs\swvl1\swvl1_20220905_2300.tif
Saved: output_tifs\swvl1\swvl1_20220906_0000.tif
Saved: output_tifs\swvl1\swvl1_20220906_0100.tif
Saved: output_tifs\swvl1\swvl1_20220906_0200.tif
Saved: output_tifs\swvl1\swvl1_20220906_0300.tif
Saved: output_tifs\swvl1\swvl1_20220906_0400.tif
Saved: output_tifs\swvl1\swvl1_20220906_0500.tif
Saved: output_tifs\swvl1\swvl1_20220906_0600.tif
Saved: output_tifs\swvl1\swvl1_20220906_0700.tif
Saved: output_tifs\swvl1\swvl1_20220906_0800.tif
Saved: output_tifs\swvl1\swvl1_20220906_0900.tif
Saved: output_tifs\swvl1\swvl1_20220906_1000.tif
Saved: output_tifs\swvl1\swvl1_20220906_1100.tif
Saved: output_tifs\swvl1\swvl1_20220906_1200.tif
Saved: output_tifs\swvl1\swvl1_20220906_1300.tif
Saved: output_tifs\swvl1\swvl1_20220906_1400.tif
Saved: output_tifs\swvl1\swvl1_20220906_1500.tif
Saved: output_tifs\swvl1\swvl1_20220906_1600.tif
Saved: output_tifs\swvl1\swvl1_20220906_1700.tif
Saved: output_tifs\swvl1\swvl1_20220906_1800.tif
Saved: output_tifs\swvl1\swvl1_20220906_1900.tif
Saved: output_tifs\swvl1\swvl1_20220906_2000.tif
Saved: output_tifs\swvl1\swvl1_20220906_2100.tif
Saved: output_tifs\swvl1\swvl1_20220906_2200.tif
Saved: output_tifs\swvl1\swvl1_20220906_2300.tif
Saved: output_tifs\swvl1\swvl1_20220907_0000.tif
Saved: output_tifs\swvl1\swvl1_20220907_0100.tif
Saved: output_tifs\swvl1\swvl1_20220907_0200.tif
Saved: output_tifs\swvl1\swvl1_20220907_0300.tif
Saved: output_tifs\swvl1\swvl1_20220907_0400.tif
Saved: output_tifs\swvl1\swvl1_20220907_0500.tif
Saved: output_tifs\swvl1\swvl1_20220907_0600.tif
Saved: output_tifs\swvl1\swvl1_20220907_0700.tif
Saved: output_tifs\swvl1\swvl1_20220907_0800.tif
Saved: output_tifs\swvl1\swvl1_20220907_0900.tif
Saved: output_tifs\swvl1\swvl1_20220907_1000.tif
Saved: output_tifs\swvl1\swvl1_20220907_1100.tif
Saved: output_tifs\swvl1\swvl1_20220907_1200.tif
Saved: output_tifs\swvl1\swvl1_20220907_1300.tif
Saved: output_tifs\swvl1\swvl1_20220907_1400.tif
Saved: output_tifs\swvl1\swvl1_20220907_1500.tif
Saved: output_tifs\swvl1\swvl1_20220907_1600.tif
Saved: output_tifs\swvl1\swvl1_20220907_1700.tif
Saved: output_tifs\swvl1\swvl1_20220907_1800.tif
Saved: output_tifs\swvl1\swvl1_20220907_1900.tif
Saved: output_tifs\swvl1\swvl1_20220907_2000.tif
Saved: output_tifs\swvl1\swvl1_20220907_2100.tif
Saved: output_tifs\swvl1\swvl1_20220907_2200.tif
Saved: output_tifs\swvl1\swvl1_20220907_2300.tif
Saved: output_tifs\swvl1\swvl1_20220908_0000.tif
Saved: output_tifs\swvl1\swvl1_20220908_0100.tif
Saved: output_tifs\swvl1\swvl1_20220908_0200.tif
Saved: output_tifs\swvl1\swvl1_20220908_0300.tif
Saved: output_tifs\swvl1\swvl1_20220908_0400.tif
Saved: output_tifs\swvl1\swvl1_20220908_0500.tif
Saved: output_tifs\swvl1\swvl1_20220908_0600.tif
Saved: output_tifs\swvl1\swvl1_20220908_0700.tif
Saved: output_tifs\swvl1\swvl1_20220908_0800.tif
Saved: output_tifs\swvl1\swvl1_20220908_0900.tif
Saved: output_tifs\swvl1\swvl1_20220908_1000.tif
Saved: output_tifs\swvl1\swvl1_20220908_1100.tif
Saved: output_tifs\swvl1\swvl1_20220908_1200.tif
Saved: output_tifs\swvl1\swvl1_20220908_1300.tif
Saved: output_tifs\swvl1\swvl1_20220908_1400.tif
Saved: output_tifs\swvl1\swvl1_20220908_1500.tif
Saved: output_tifs\swvl1\swvl1_20220908_1600.tif
Saved: output_tifs\swvl1\swvl1_20220908_1700.tif
Saved: output_tifs\swvl1\swvl1_20220908_1800.tif
Saved: output_tifs\swvl1\swvl1_20220908_1900.tif
Saved: output_tifs\swvl1\swvl1_20220908_2000.tif
Saved: output_tifs\swvl1\swvl1_20220908_2100.tif
Saved: output_tifs\swvl1\swvl1_20220908_2200.tif
Saved: output_tifs\swvl1\swvl1_20220908_2300.tif
Saved: output_tifs\swvl1\swvl1_20220909_0000.tif
Saved: output_tifs\swvl1\swvl1_20220909_0100.tif
Saved: output_tifs\swvl1\swvl1_20220909_0200.tif
Saved: output_tifs\swvl1\swvl1_20220909_0300.tif
Saved: output_tifs\swvl1\swvl1_20220909_0400.tif
Saved: output_tifs\swvl1\swvl1_20220909_0500.tif
Saved: output_tifs\swvl1\swvl1_20220909_0600.tif
Saved: output_tifs\swvl1\swvl1_20220909_0700.tif
Saved: output_tifs\swvl1\swvl1_20220909_0800.tif
Saved: output_tifs\swvl1\swvl1_20220909_0900.tif
Saved: output_tifs\swvl1\swvl1_20220909_1000.tif
Saved: output_tifs\swvl1\swvl1_20220909_1100.tif
Saved: output_tifs\swvl1\swvl1_20220909_1200.tif
Saved: output_tifs\swvl1\swvl1_20220909_1300.tif
Saved: output_tifs\swvl1\swvl1_20220909_1400.tif
Saved: output_tifs\swvl1\swvl1_20220909_1500.tif
Saved: output_tifs\swvl1\swvl1_20220909_1600.tif
Saved: output_tifs\swvl1\swvl1_20220909_1700.tif
Saved: output_tifs\swvl1\swvl1_20220909_1800.tif
Saved: output_tifs\swvl1\swvl1_20220909_1900.tif
Saved: output_tifs\swvl1\swvl1_20220909_2000.tif
Saved: output_tifs\swvl1\swvl1_20220909_2100.tif
Saved: output_tifs\swvl1\swvl1_20220909_2200.tif
Saved: output_tifs\swvl1\swvl1_20220909_2300.tif
Saved: output_tifs\swvl1\swvl1_20220910_0000.tif
Saved: output_tifs\swvl1\swvl1_20220910_0100.tif
Saved: output_tifs\swvl1\swvl1_20220910_0200.tif
Saved: output_tifs\swvl1\swvl1_20220910_0300.tif
Saved: output_tifs\swvl1\swvl1_20220910_0400.tif
Saved: output_tifs\swvl1\swvl1_20220910_0500.tif
Saved: output_tifs\swvl1\swvl1_20220910_0600.tif
Saved: output_tifs\swvl1\swvl1_20220910_0700.tif
Saved: output_tifs\swvl1\swvl1_20220910_0800.tif
Saved: output_tifs\swvl1\swvl1_20220910_0900.tif
Saved: output_tifs\swvl1\swvl1_20220910_1000.tif
Saved: output_tifs\swvl1\swvl1_20220910_1100.tif
Saved: output_tifs\swvl1\swvl1_20220910_1200.tif
Saved: output_tifs\swvl1\swvl1_20220910_1300.tif
Saved: output_tifs\swvl1\swvl1_20220910_1400.tif
Saved: output_tifs\swvl1\swvl1_20220910_1500.tif
Saved: output_tifs\swvl1\swvl1_20220910_1600.tif
Saved: output_tifs\swvl1\swvl1_20220910_1700.tif
Saved: output_tifs\swvl1\swvl1_20220910_1800.tif
Saved: output_tifs\swvl1\swvl1_20220910_1900.tif
Saved: output_tifs\swvl1\swvl1_20220910_2000.tif
Saved: output_tifs\swvl1\swvl1_20220910_2100.tif
Saved: output_tifs\swvl1\swvl1_20220910_2200.tif
Saved: output_tifs\swvl1\swvl1_20220910_2300.tif
Saved: output_tifs\swvl2\swvl2_20220901_0000.tif
Saved: output_tifs\swvl2\swvl2_20220901_0100.tif
Saved: output_tifs\swvl2\swvl2_20220901_0200.tif
Saved: output_tifs\swvl2\swvl2_20220901_0300.tif
Saved: output_tifs\swvl2\swvl2_20220901_0400.tif
Saved: output_tifs\swvl2\swvl2_20220901_0500.tif
Saved: output_tifs\swvl2\swvl2_20220901_0600.tif
Saved: output_tifs\swvl2\swvl2_20220901_0700.tif
Saved: output_tifs\swvl2\swvl2_20220901_0800.tif
Saved: output_tifs\swvl2\swvl2_20220901_0900.tif
Saved: output_tifs\swvl2\swvl2_20220901_1000.tif
Saved: output_tifs\swvl2\swvl2_20220901_1100.tif
Saved: output_tifs\swvl2\swvl2_20220901_1200.tif
Saved: output_tifs\swvl2\swvl2_20220901_1300.tif
Saved: output_tifs\swvl2\swvl2_20220901_1400.tif
Saved: output_tifs\swvl2\swvl2_20220901_1500.tif
Saved: output_tifs\swvl2\swvl2_20220901_1600.tif
Saved: output_tifs\swvl2\swvl2_20220901_1700.tif
Saved: output_tifs\swvl2\swvl2_20220901_1800.tif
Saved: output_tifs\swvl2\swvl2_20220901_1900.tif
Saved: output_tifs\swvl2\swvl2_20220901_2000.tif
Saved: output_tifs\swvl2\swvl2_20220901_2100.tif
Saved: output_tifs\swvl2\swvl2_20220901_2200.tif
Saved: output_tifs\swvl2\swvl2_20220901_2300.tif
Saved: output_tifs\swvl2\swvl2_20220902_0000.tif
Saved: output_tifs\swvl2\swvl2_20220902_0100.tif
Saved: output_tifs\swvl2\swvl2_20220902_0200.tif
Saved: output_tifs\swvl2\swvl2_20220902_0300.tif
Saved: output_tifs\swvl2\swvl2_20220902_0400.tif
Saved: output_tifs\swvl2\swvl2_20220902_0500.tif
Saved: output_tifs\swvl2\swvl2_20220902_0600.tif
Saved: output_tifs\swvl2\swvl2_20220902_0700.tif
Saved: output_tifs\swvl2\swvl2_20220902_0800.tif
Saved: output_tifs\swvl2\swvl2_20220902_0900.tif
Saved: output_tifs\swvl2\swvl2_20220902_1000.tif
Saved: output_tifs\swvl2\swvl2_20220902_1100.tif
Saved: output_tifs\swvl2\swvl2_20220902_1200.tif
Saved: output_tifs\swvl2\swvl2_20220902_1300.tif
Saved: output_tifs\swvl2\swvl2_20220902_1400.tif
Saved: output_tifs\swvl2\swvl2_20220902_1500.tif
Saved: output_tifs\swvl2\swvl2_20220902_1600.tif
Saved: output_tifs\swvl2\swvl2_20220902_1700.tif
Saved: output_tifs\swvl2\swvl2_20220902_1800.tif
Saved: output_tifs\swvl2\swvl2_20220902_1900.tif
Saved: output_tifs\swvl2\swvl2_20220902_2000.tif
Saved: output_tifs\swvl2\swvl2_20220902_2100.tif
Saved: output_tifs\swvl2\swvl2_20220902_2200.tif
Saved: output_tifs\swvl2\swvl2_20220902_2300.tif
Saved: output_tifs\swvl2\swvl2_20220903_0000.tif
Saved: output_tifs\swvl2\swvl2_20220903_0100.tif
Saved: output_tifs\swvl2\swvl2_20220903_0200.tif
Saved: output_tifs\swvl2\swvl2_20220903_0300.tif
Saved: output_tifs\swvl2\swvl2_20220903_0400.tif
Saved: output_tifs\swvl2\swvl2_20220903_0500.tif
Saved: output_tifs\swvl2\swvl2_20220903_0600.tif
Saved: output_tifs\swvl2\swvl2_20220903_0700.tif
Saved: output_tifs\swvl2\swvl2_20220903_0800.tif
Saved: output_tifs\swvl2\swvl2_20220903_0900.tif
Saved: output_tifs\swvl2\swvl2_20220903_1000.tif
Saved: output_tifs\swvl2\swvl2_20220903_1100.tif
Saved: output_tifs\swvl2\swvl2_20220903_1200.tif
Saved: output_tifs\swvl2\swvl2_20220903_1300.tif
Saved: output_tifs\swvl2\swvl2_20220903_1400.tif
Saved: output_tifs\swvl2\swvl2_20220903_1500.tif
Saved: output_tifs\swvl2\swvl2_20220903_1600.tif
Saved: output_tifs\swvl2\swvl2_20220903_1700.tif
Saved: output_tifs\swvl2\swvl2_20220903_1800.tif
Saved: output_tifs\swvl2\swvl2_20220903_1900.tif
Saved: output_tifs\swvl2\swvl2_20220903_2000.tif
Saved: output_tifs\swvl2\swvl2_20220903_2100.tif
Saved: output_tifs\swvl2\swvl2_20220903_2200.tif
Saved: output_tifs\swvl2\swvl2_20220903_2300.tif
Saved: output_tifs\swvl2\swvl2_20220904_0000.tif
Saved: output_tifs\swvl2\swvl2_20220904_0100.tif
Saved: output_tifs\swvl2\swvl2_20220904_0200.tif
Saved: output_tifs\swvl2\swvl2_20220904_0300.tif
Saved: output_tifs\swvl2\swvl2_20220904_0400.tif
Saved: output_tifs\swvl2\swvl2_20220904_0500.tif
Saved: output_tifs\swvl2\swvl2_20220904_0600.tif
Saved: output_tifs\swvl2\swvl2_20220904_0700.tif
Saved: output_tifs\swvl2\swvl2_20220904_0800.tif
Saved: output_tifs\swvl2\swvl2_20220904_0900.tif
Saved: output_tifs\swvl2\swvl2_20220904_1000.tif
Saved: output_tifs\swvl2\swvl2_20220904_1100.tif
Saved: output_tifs\swvl2\swvl2_20220904_1200.tif
Saved: output_tifs\swvl2\swvl2_20220904_1300.tif
Saved: output_tifs\swvl2\swvl2_20220904_1400.tif
Saved: output_tifs\swvl2\swvl2_20220904_1500.tif
Saved: output_tifs\swvl2\swvl2_20220904_1600.tif
Saved: output_tifs\swvl2\swvl2_20220904_1700.tif
Saved: output_tifs\swvl2\swvl2_20220904_1800.tif
Saved: output_tifs\swvl2\swvl2_20220904_1900.tif
Saved: output_tifs\swvl2\swvl2_20220904_2000.tif
Saved: output_tifs\swvl2\swvl2_20220904_2100.tif
Saved: output_tifs\swvl2\swvl2_20220904_2200.tif
Saved: output_tifs\swvl2\swvl2_20220904_2300.tif
Saved: output_tifs\swvl2\swvl2_20220905_0000.tif
Saved: output_tifs\swvl2\swvl2_20220905_0100.tif
Saved: output_tifs\swvl2\swvl2_20220905_0200.tif
Saved: output_tifs\swvl2\swvl2_20220905_0300.tif
Saved: output_tifs\swvl2\swvl2_20220905_0400.tif
Saved: output_tifs\swvl2\swvl2_20220905_0500.tif
Saved: output_tifs\swvl2\swvl2_20220905_0600.tif
Saved: output_tifs\swvl2\swvl2_20220905_0700.tif
Saved: output_tifs\swvl2\swvl2_20220905_0800.tif
Saved: output_tifs\swvl2\swvl2_20220905_0900.tif
Saved: output_tifs\swvl2\swvl2_20220905_1000.tif
Saved: output_tifs\swvl2\swvl2_20220905_1100.tif
Saved: output_tifs\swvl2\swvl2_20220905_1200.tif
Saved: output_tifs\swvl2\swvl2_20220905_1300.tif
Saved: output_tifs\swvl2\swvl2_20220905_1400.tif
Saved: output_tifs\swvl2\swvl2_20220905_1500.tif
Saved: output_tifs\swvl2\swvl2_20220905_1600.tif
Saved: output_tifs\swvl2\swvl2_20220905_1700.tif
Saved: output_tifs\swvl2\swvl2_20220905_1800.tif
Saved: output_tifs\swvl2\swvl2_20220905_1900.tif
Saved: output_tifs\swvl2\swvl2_20220905_2000.tif
Saved: output_tifs\swvl2\swvl2_20220905_2100.tif
Saved: output_tifs\swvl2\swvl2_20220905_2200.tif
Saved: output_tifs\swvl2\swvl2_20220905_2300.tif
Saved: output_tifs\swvl2\swvl2_20220906_0000.tif
Saved: output_tifs\swvl2\swvl2_20220906_0100.tif
Saved: output_tifs\swvl2\swvl2_20220906_0200.tif
Saved: output_tifs\swvl2\swvl2_20220906_0300.tif
Saved: output_tifs\swvl2\swvl2_20220906_0400.tif
Saved: output_tifs\swvl2\swvl2_20220906_0500.tif
Saved: output_tifs\swvl2\swvl2_20220906_0600.tif
Saved: output_tifs\swvl2\swvl2_20220906_0700.tif
Saved: output_tifs\swvl2\swvl2_20220906_0800.tif
Saved: output_tifs\swvl2\swvl2_20220906_0900.tif
Saved: output_tifs\swvl2\swvl2_20220906_1000.tif
Saved: output_tifs\swvl2\swvl2_20220906_1100.tif
Saved: output_tifs\swvl2\swvl2_20220906_1200.tif
Saved: output_tifs\swvl2\swvl2_20220906_1300.tif
Saved: output_tifs\swvl2\swvl2_20220906_1400.tif
Saved: output_tifs\swvl2\swvl2_20220906_1500.tif
Saved: output_tifs\swvl2\swvl2_20220906_1600.tif
Saved: output_tifs\swvl2\swvl2_20220906_1700.tif
Saved: output_tifs\swvl2\swvl2_20220906_1800.tif
Saved: output_tifs\swvl2\swvl2_20220906_1900.tif
Saved: output_tifs\swvl2\swvl2_20220906_2000.tif
Saved: output_tifs\swvl2\swvl2_20220906_2100.tif
Saved: output_tifs\swvl2\swvl2_20220906_2200.tif
Saved: output_tifs\swvl2\swvl2_20220906_2300.tif
Saved: output_tifs\swvl2\swvl2_20220907_0000.tif
Saved: output_tifs\swvl2\swvl2_20220907_0100.tif
Saved: output_tifs\swvl2\swvl2_20220907_0200.tif
Saved: output_tifs\swvl2\swvl2_20220907_0300.tif
Saved: output_tifs\swvl2\swvl2_20220907_0400.tif
Saved: output_tifs\swvl2\swvl2_20220907_0500.tif
Saved: output_tifs\swvl2\swvl2_20220907_0600.tif
Saved: output_tifs\swvl2\swvl2_20220907_0700.tif
Saved: output_tifs\swvl2\swvl2_20220907_0800.tif
Saved: output_tifs\swvl2\swvl2_20220907_0900.tif
Saved: output_tifs\swvl2\swvl2_20220907_1000.tif
Saved: output_tifs\swvl2\swvl2_20220907_1100.tif
Saved: output_tifs\swvl2\swvl2_20220907_1200.tif
Saved: output_tifs\swvl2\swvl2_20220907_1300.tif
Saved: output_tifs\swvl2\swvl2_20220907_1400.tif
Saved: output_tifs\swvl2\swvl2_20220907_1500.tif
Saved: output_tifs\swvl2\swvl2_20220907_1600.tif
Saved: output_tifs\swvl2\swvl2_20220907_1700.tif
Saved: output_tifs\swvl2\swvl2_20220907_1800.tif
Saved: output_tifs\swvl2\swvl2_20220907_1900.tif
Saved: output_tifs\swvl2\swvl2_20220907_2000.tif
Saved: output_tifs\swvl2\swvl2_20220907_2100.tif
Saved: output_tifs\swvl2\swvl2_20220907_2200.tif
Saved: output_tifs\swvl2\swvl2_20220907_2300.tif
Saved: output_tifs\swvl2\swvl2_20220908_0000.tif
Saved: output_tifs\swvl2\swvl2_20220908_0100.tif
Saved: output_tifs\swvl2\swvl2_20220908_0200.tif
Saved: output_tifs\swvl2\swvl2_20220908_0300.tif
Saved: output_tifs\swvl2\swvl2_20220908_0400.tif
Saved: output_tifs\swvl2\swvl2_20220908_0500.tif
Saved: output_tifs\swvl2\swvl2_20220908_0600.tif
Saved: output_tifs\swvl2\swvl2_20220908_0700.tif
Saved: output_tifs\swvl2\swvl2_20220908_0800.tif
Saved: output_tifs\swvl2\swvl2_20220908_0900.tif
Saved: output_tifs\swvl2\swvl2_20220908_1000.tif
Saved: output_tifs\swvl2\swvl2_20220908_1100.tif
Saved: output_tifs\swvl2\swvl2_20220908_1200.tif
Saved: output_tifs\swvl2\swvl2_20220908_1300.tif
Saved: output_tifs\swvl2\swvl2_20220908_1400.tif
Saved: output_tifs\swvl2\swvl2_20220908_1500.tif
Saved: output_tifs\swvl2\swvl2_20220908_1600.tif
Saved: output_tifs\swvl2\swvl2_20220908_1700.tif
Saved: output_tifs\swvl2\swvl2_20220908_1800.tif
Saved: output_tifs\swvl2\swvl2_20220908_1900.tif
Saved: output_tifs\swvl2\swvl2_20220908_2000.tif
Saved: output_tifs\swvl2\swvl2_20220908_2100.tif
Saved: output_tifs\swvl2\swvl2_20220908_2200.tif
Saved: output_tifs\swvl2\swvl2_20220908_2300.tif
Saved: output_tifs\swvl2\swvl2_20220909_0000.tif
Saved: output_tifs\swvl2\swvl2_20220909_0100.tif
Saved: output_tifs\swvl2\swvl2_20220909_0200.tif
Saved: output_tifs\swvl2\swvl2_20220909_0300.tif
Saved: output_tifs\swvl2\swvl2_20220909_0400.tif
Saved: output_tifs\swvl2\swvl2_20220909_0500.tif
Saved: output_tifs\swvl2\swvl2_20220909_0600.tif
Saved: output_tifs\swvl2\swvl2_20220909_0700.tif
Saved: output_tifs\swvl2\swvl2_20220909_0800.tif
Saved: output_tifs\swvl2\swvl2_20220909_0900.tif
Saved: output_tifs\swvl2\swvl2_20220909_1000.tif
Saved: output_tifs\swvl2\swvl2_20220909_1100.tif
Saved: output_tifs\swvl2\swvl2_20220909_1200.tif
Saved: output_tifs\swvl2\swvl2_20220909_1300.tif
Saved: output_tifs\swvl2\swvl2_20220909_1400.tif
Saved: output_tifs\swvl2\swvl2_20220909_1500.tif
Saved: output_tifs\swvl2\swvl2_20220909_1600.tif
Saved: output_tifs\swvl2\swvl2_20220909_1700.tif
Saved: output_tifs\swvl2\swvl2_20220909_1800.tif
Saved: output_tifs\swvl2\swvl2_20220909_1900.tif
Saved: output_tifs\swvl2\swvl2_20220909_2000.tif
Saved: output_tifs\swvl2\swvl2_20220909_2100.tif
Saved: output_tifs\swvl2\swvl2_20220909_2200.tif
Saved: output_tifs\swvl2\swvl2_20220909_2300.tif
Saved: output_tifs\swvl2\swvl2_20220910_0000.tif
Saved: output_tifs\swvl2\swvl2_20220910_0100.tif
Saved: output_tifs\swvl2\swvl2_20220910_0200.tif
Saved: output_tifs\swvl2\swvl2_20220910_0300.tif
Saved: output_tifs\swvl2\swvl2_20220910_0400.tif
Saved: output_tifs\swvl2\swvl2_20220910_0500.tif
Saved: output_tifs\swvl2\swvl2_20220910_0600.tif
Saved: output_tifs\swvl2\swvl2_20220910_0700.tif
Saved: output_tifs\swvl2\swvl2_20220910_0800.tif
Saved: output_tifs\swvl2\swvl2_20220910_0900.tif
Saved: output_tifs\swvl2\swvl2_20220910_1000.tif
Saved: output_tifs\swvl2\swvl2_20220910_1100.tif
Saved: output_tifs\swvl2\swvl2_20220910_1200.tif
Saved: output_tifs\swvl2\swvl2_20220910_1300.tif
Saved: output_tifs\swvl2\swvl2_20220910_1400.tif
Saved: output_tifs\swvl2\swvl2_20220910_1500.tif
Saved: output_tifs\swvl2\swvl2_20220910_1600.tif
Saved: output_tifs\swvl2\swvl2_20220910_1700.tif
Saved: output_tifs\swvl2\swvl2_20220910_1800.tif
Saved: output_tifs\swvl2\swvl2_20220910_1900.tif
Saved: output_tifs\swvl2\swvl2_20220910_2000.tif
Saved: output_tifs\swvl2\swvl2_20220910_2100.tif
Saved: output_tifs\swvl2\swvl2_20220910_2200.tif
Saved: output_tifs\swvl2\swvl2_20220910_2300.tif
Saved: output_tifs\swvl3\swvl3_20220901_0000.tif
Saved: output_tifs\swvl3\swvl3_20220901_0100.tif
Saved: output_tifs\swvl3\swvl3_20220901_0200.tif
Saved: output_tifs\swvl3\swvl3_20220901_0300.tif
Saved: output_tifs\swvl3\swvl3_20220901_0400.tif
Saved: output_tifs\swvl3\swvl3_20220901_0500.tif
Saved: output_tifs\swvl3\swvl3_20220901_0600.tif
Saved: output_tifs\swvl3\swvl3_20220901_0700.tif
Saved: output_tifs\swvl3\swvl3_20220901_0800.tif
Saved: output_tifs\swvl3\swvl3_20220901_0900.tif
Saved: output_tifs\swvl3\swvl3_20220901_1000.tif
Saved: output_tifs\swvl3\swvl3_20220901_1100.tif
Saved: output_tifs\swvl3\swvl3_20220901_1200.tif
Saved: output_tifs\swvl3\swvl3_20220901_1300.tif
Saved: output_tifs\swvl3\swvl3_20220901_1400.tif
Saved: output_tifs\swvl3\swvl3_20220901_1500.tif
Saved: output_tifs\swvl3\swvl3_20220901_1600.tif
Saved: output_tifs\swvl3\swvl3_20220901_1700.tif
Saved: output_tifs\swvl3\swvl3_20220901_1800.tif
Saved: output_tifs\swvl3\swvl3_20220901_1900.tif
Saved: output_tifs\swvl3\swvl3_20220901_2000.tif
Saved: output_tifs\swvl3\swvl3_20220901_2100.tif
Saved: output_tifs\swvl3\swvl3_20220901_2200.tif
Saved: output_tifs\swvl3\swvl3_20220901_2300.tif
Saved: output_tifs\swvl3\swvl3_20220902_0000.tif
Saved: output_tifs\swvl3\swvl3_20220902_0100.tif
Saved: output_tifs\swvl3\swvl3_20220902_0200.tif
Saved: output_tifs\swvl3\swvl3_20220902_0300.tif
Saved: output_tifs\swvl3\swvl3_20220902_0400.tif
Saved: output_tifs\swvl3\swvl3_20220902_0500.tif
Saved: output_tifs\swvl3\swvl3_20220902_0600.tif
Saved: output_tifs\swvl3\swvl3_20220902_0700.tif
Saved: output_tifs\swvl3\swvl3_20220902_0800.tif
Saved: output_tifs\swvl3\swvl3_20220902_0900.tif
Saved: output_tifs\swvl3\swvl3_20220902_1000.tif
Saved: output_tifs\swvl3\swvl3_20220902_1100.tif
Saved: output_tifs\swvl3\swvl3_20220902_1200.tif
Saved: output_tifs\swvl3\swvl3_20220902_1300.tif
Saved: output_tifs\swvl3\swvl3_20220902_1400.tif
Saved: output_tifs\swvl3\swvl3_20220902_1500.tif
Saved: output_tifs\swvl3\swvl3_20220902_1600.tif
Saved: output_tifs\swvl3\swvl3_20220902_1700.tif
Saved: output_tifs\swvl3\swvl3_20220902_1800.tif
Saved: output_tifs\swvl3\swvl3_20220902_1900.tif
Saved: output_tifs\swvl3\swvl3_20220902_2000.tif
Saved: output_tifs\swvl3\swvl3_20220902_2100.tif
Saved: output_tifs\swvl3\swvl3_20220902_2200.tif
Saved: output_tifs\swvl3\swvl3_20220902_2300.tif
Saved: output_tifs\swvl3\swvl3_20220903_0000.tif
Saved: output_tifs\swvl3\swvl3_20220903_0100.tif
Saved: output_tifs\swvl3\swvl3_20220903_0200.tif
Saved: output_tifs\swvl3\swvl3_20220903_0300.tif
Saved: output_tifs\swvl3\swvl3_20220903_0400.tif
Saved: output_tifs\swvl3\swvl3_20220903_0500.tif
Saved: output_tifs\swvl3\swvl3_20220903_0600.tif
Saved: output_tifs\swvl3\swvl3_20220903_0700.tif
Saved: output_tifs\swvl3\swvl3_20220903_0800.tif
Saved: output_tifs\swvl3\swvl3_20220903_0900.tif
Saved: output_tifs\swvl3\swvl3_20220903_1000.tif
Saved: output_tifs\swvl3\swvl3_20220903_1100.tif
Saved: output_tifs\swvl3\swvl3_20220903_1200.tif
Saved: output_tifs\swvl3\swvl3_20220903_1300.tif
Saved: output_tifs\swvl3\swvl3_20220903_1400.tif
Saved: output_tifs\swvl3\swvl3_20220903_1500.tif
Saved: output_tifs\swvl3\swvl3_20220903_1600.tif
Saved: output_tifs\swvl3\swvl3_20220903_1700.tif
Saved: output_tifs\swvl3\swvl3_20220903_1800.tif
Saved: output_tifs\swvl3\swvl3_20220903_1900.tif
Saved: output_tifs\swvl3\swvl3_20220903_2000.tif
Saved: output_tifs\swvl3\swvl3_20220903_2100.tif
Saved: output_tifs\swvl3\swvl3_20220903_2200.tif
Saved: output_tifs\swvl3\swvl3_20220903_2300.tif
Saved: output_tifs\swvl3\swvl3_20220904_0000.tif
Saved: output_tifs\swvl3\swvl3_20220904_0100.tif
Saved: output_tifs\swvl3\swvl3_20220904_0200.tif
Saved: output_tifs\swvl3\swvl3_20220904_0300.tif
Saved: output_tifs\swvl3\swvl3_20220904_0400.tif
Saved: output_tifs\swvl3\swvl3_20220904_0500.tif
Saved: output_tifs\swvl3\swvl3_20220904_0600.tif
Saved: output_tifs\swvl3\swvl3_20220904_0700.tif
Saved: output_tifs\swvl3\swvl3_20220904_0800.tif
Saved: output_tifs\swvl3\swvl3_20220904_0900.tif
Saved: output_tifs\swvl3\swvl3_20220904_1000.tif
Saved: output_tifs\swvl3\swvl3_20220904_1100.tif
Saved: output_tifs\swvl3\swvl3_20220904_1200.tif
Saved: output_tifs\swvl3\swvl3_20220904_1300.tif
Saved: output_tifs\swvl3\swvl3_20220904_1400.tif
Saved: output_tifs\swvl3\swvl3_20220904_1500.tif
Saved: output_tifs\swvl3\swvl3_20220904_1600.tif
Saved: output_tifs\swvl3\swvl3_20220904_1700.tif
Saved: output_tifs\swvl3\swvl3_20220904_1800.tif
Saved: output_tifs\swvl3\swvl3_20220904_1900.tif
Saved: output_tifs\swvl3\swvl3_20220904_2000.tif
Saved: output_tifs\swvl3\swvl3_20220904_2100.tif
Saved: output_tifs\swvl3\swvl3_20220904_2200.tif
Saved: output_tifs\swvl3\swvl3_20220904_2300.tif
Saved: output_tifs\swvl3\swvl3_20220905_0000.tif
Saved: output_tifs\swvl3\swvl3_20220905_0100.tif
Saved: output_tifs\swvl3\swvl3_20220905_0200.tif
Saved: output_tifs\swvl3\swvl3_20220905_0300.tif
Saved: output_tifs\swvl3\swvl3_20220905_0400.tif
Saved: output_tifs\swvl3\swvl3_20220905_0500.tif
Saved: output_tifs\swvl3\swvl3_20220905_0600.tif
Saved: output_tifs\swvl3\swvl3_20220905_0700.tif
Saved: output_tifs\swvl3\swvl3_20220905_0800.tif
Saved: output_tifs\swvl3\swvl3_20220905_0900.tif
Saved: output_tifs\swvl3\swvl3_20220905_1000.tif
Saved: output_tifs\swvl3\swvl3_20220905_1100.tif
Saved: output_tifs\swvl3\swvl3_20220905_1200.tif
Saved: output_tifs\swvl3\swvl3_20220905_1300.tif
Saved: output_tifs\swvl3\swvl3_20220905_1400.tif
Saved: output_tifs\swvl3\swvl3_20220905_1500.tif
Saved: output_tifs\swvl3\swvl3_20220905_1600.tif
Saved: output_tifs\swvl3\swvl3_20220905_1700.tif
Saved: output_tifs\swvl3\swvl3_20220905_1800.tif
Saved: output_tifs\swvl3\swvl3_20220905_1900.tif
Saved: output_tifs\swvl3\swvl3_20220905_2000.tif
Saved: output_tifs\swvl3\swvl3_20220905_2100.tif
Saved: output_tifs\swvl3\swvl3_20220905_2200.tif
Saved: output_tifs\swvl3\swvl3_20220905_2300.tif
Saved: output_tifs\swvl3\swvl3_20220906_0000.tif
Saved: output_tifs\swvl3\swvl3_20220906_0100.tif
Saved: output_tifs\swvl3\swvl3_20220906_0200.tif
Saved: output_tifs\swvl3\swvl3_20220906_0300.tif
Saved: output_tifs\swvl3\swvl3_20220906_0400.tif
Saved: output_tifs\swvl3\swvl3_20220906_0500.tif
Saved: output_tifs\swvl3\swvl3_20220906_0600.tif
Saved: output_tifs\swvl3\swvl3_20220906_0700.tif
Saved: output_tifs\swvl3\swvl3_20220906_0800.tif
Saved: output_tifs\swvl3\swvl3_20220906_0900.tif
Saved: output_tifs\swvl3\swvl3_20220906_1000.tif
Saved: output_tifs\swvl3\swvl3_20220906_1100.tif
Saved: output_tifs\swvl3\swvl3_20220906_1200.tif
Saved: output_tifs\swvl3\swvl3_20220906_1300.tif
Saved: output_tifs\swvl3\swvl3_20220906_1400.tif
Saved: output_tifs\swvl3\swvl3_20220906_1500.tif
Saved: output_tifs\swvl3\swvl3_20220906_1600.tif
Saved: output_tifs\swvl3\swvl3_20220906_1700.tif
Saved: output_tifs\swvl3\swvl3_20220906_1800.tif
Saved: output_tifs\swvl3\swvl3_20220906_1900.tif
Saved: output_tifs\swvl3\swvl3_20220906_2000.tif
Saved: output_tifs\swvl3\swvl3_20220906_2100.tif
Saved: output_tifs\swvl3\swvl3_20220906_2200.tif
Saved: output_tifs\swvl3\swvl3_20220906_2300.tif
Saved: output_tifs\swvl3\swvl3_20220907_0000.tif
Saved: output_tifs\swvl3\swvl3_20220907_0100.tif
Saved: output_tifs\swvl3\swvl3_20220907_0200.tif
Saved: output_tifs\swvl3\swvl3_20220907_0300.tif
Saved: output_tifs\swvl3\swvl3_20220907_0400.tif
Saved: output_tifs\swvl3\swvl3_20220907_0500.tif
Saved: output_tifs\swvl3\swvl3_20220907_0600.tif
Saved: output_tifs\swvl3\swvl3_20220907_0700.tif
Saved: output_tifs\swvl3\swvl3_20220907_0800.tif
Saved: output_tifs\swvl3\swvl3_20220907_0900.tif
Saved: output_tifs\swvl3\swvl3_20220907_1000.tif
Saved: output_tifs\swvl3\swvl3_20220907_1100.tif
Saved: output_tifs\swvl3\swvl3_20220907_1200.tif
Saved: output_tifs\swvl3\swvl3_20220907_1300.tif
Saved: output_tifs\swvl3\swvl3_20220907_1400.tif
Saved: output_tifs\swvl3\swvl3_20220907_1500.tif
Saved: output_tifs\swvl3\swvl3_20220907_1600.tif
Saved: output_tifs\swvl3\swvl3_20220907_1700.tif
Saved: output_tifs\swvl3\swvl3_20220907_1800.tif
Saved: output_tifs\swvl3\swvl3_20220907_1900.tif
Saved: output_tifs\swvl3\swvl3_20220907_2000.tif
Saved: output_tifs\swvl3\swvl3_20220907_2100.tif
Saved: output_tifs\swvl3\swvl3_20220907_2200.tif
Saved: output_tifs\swvl3\swvl3_20220907_2300.tif
Saved: output_tifs\swvl3\swvl3_20220908_0000.tif
Saved: output_tifs\swvl3\swvl3_20220908_0100.tif
Saved: output_tifs\swvl3\swvl3_20220908_0200.tif
Saved: output_tifs\swvl3\swvl3_20220908_0300.tif
Saved: output_tifs\swvl3\swvl3_20220908_0400.tif
Saved: output_tifs\swvl3\swvl3_20220908_0500.tif
Saved: output_tifs\swvl3\swvl3_20220908_0600.tif
Saved: output_tifs\swvl3\swvl3_20220908_0700.tif
Saved: output_tifs\swvl3\swvl3_20220908_0800.tif
Saved: output_tifs\swvl3\swvl3_20220908_0900.tif
Saved: output_tifs\swvl3\swvl3_20220908_1000.tif
Saved: output_tifs\swvl3\swvl3_20220908_1100.tif
Saved: output_tifs\swvl3\swvl3_20220908_1200.tif
Saved: output_tifs\swvl3\swvl3_20220908_1300.tif
Saved: output_tifs\swvl3\swvl3_20220908_1400.tif
Saved: output_tifs\swvl3\swvl3_20220908_1500.tif
Saved: output_tifs\swvl3\swvl3_20220908_1600.tif
Saved: output_tifs\swvl3\swvl3_20220908_1700.tif
Saved: output_tifs\swvl3\swvl3_20220908_1800.tif
Saved: output_tifs\swvl3\swvl3_20220908_1900.tif
Saved: output_tifs\swvl3\swvl3_20220908_2000.tif
Saved: output_tifs\swvl3\swvl3_20220908_2100.tif
Saved: output_tifs\swvl3\swvl3_20220908_2200.tif
Saved: output_tifs\swvl3\swvl3_20220908_2300.tif
Saved: output_tifs\swvl3\swvl3_20220909_0000.tif
Saved: output_tifs\swvl3\swvl3_20220909_0100.tif
Saved: output_tifs\swvl3\swvl3_20220909_0200.tif
Saved: output_tifs\swvl3\swvl3_20220909_0300.tif
Saved: output_tifs\swvl3\swvl3_20220909_0400.tif
Saved: output_tifs\swvl3\swvl3_20220909_0500.tif
Saved: output_tifs\swvl3\swvl3_20220909_0600.tif
Saved: output_tifs\swvl3\swvl3_20220909_0700.tif
Saved: output_tifs\swvl3\swvl3_20220909_0800.tif
Saved: output_tifs\swvl3\swvl3_20220909_0900.tif
Saved: output_tifs\swvl3\swvl3_20220909_1000.tif
Saved: output_tifs\swvl3\swvl3_20220909_1100.tif
Saved: output_tifs\swvl3\swvl3_20220909_1200.tif
Saved: output_tifs\swvl3\swvl3_20220909_1300.tif
Saved: output_tifs\swvl3\swvl3_20220909_1400.tif
Saved: output_tifs\swvl3\swvl3_20220909_1500.tif
Saved: output_tifs\swvl3\swvl3_20220909_1600.tif
Saved: output_tifs\swvl3\swvl3_20220909_1700.tif
Saved: output_tifs\swvl3\swvl3_20220909_1800.tif
Saved: output_tifs\swvl3\swvl3_20220909_1900.tif
Saved: output_tifs\swvl3\swvl3_20220909_2000.tif
Saved: output_tifs\swvl3\swvl3_20220909_2100.tif
Saved: output_tifs\swvl3\swvl3_20220909_2200.tif
Saved: output_tifs\swvl3\swvl3_20220909_2300.tif
Saved: output_tifs\swvl3\swvl3_20220910_0000.tif
Saved: output_tifs\swvl3\swvl3_20220910_0100.tif
Saved: output_tifs\swvl3\swvl3_20220910_0200.tif
Saved: output_tifs\swvl3\swvl3_20220910_0300.tif
Saved: output_tifs\swvl3\swvl3_20220910_0400.tif
Saved: output_tifs\swvl3\swvl3_20220910_0500.tif
Saved: output_tifs\swvl3\swvl3_20220910_0600.tif
Saved: output_tifs\swvl3\swvl3_20220910_0700.tif
Saved: output_tifs\swvl3\swvl3_20220910_0800.tif
Saved: output_tifs\swvl3\swvl3_20220910_0900.tif
Saved: output_tifs\swvl3\swvl3_20220910_1000.tif
Saved: output_tifs\swvl3\swvl3_20220910_1100.tif
Saved: output_tifs\swvl3\swvl3_20220910_1200.tif
Saved: output_tifs\swvl3\swvl3_20220910_1300.tif
Saved: output_tifs\swvl3\swvl3_20220910_1400.tif
Saved: output_tifs\swvl3\swvl3_20220910_1500.tif
Saved: output_tifs\swvl3\swvl3_20220910_1600.tif
Saved: output_tifs\swvl3\swvl3_20220910_1700.tif
Saved: output_tifs\swvl3\swvl3_20220910_1800.tif
Saved: output_tifs\swvl3\swvl3_20220910_1900.tif
Saved: output_tifs\swvl3\swvl3_20220910_2000.tif
Saved: output_tifs\swvl3\swvl3_20220910_2100.tif
Saved: output_tifs\swvl3\swvl3_20220910_2200.tif
Saved: output_tifs\swvl3\swvl3_20220910_2300.tif
Saved: output_tifs\swvl4\swvl4_20220901_0000.tif
Saved: output_tifs\swvl4\swvl4_20220901_0100.tif
Saved: output_tifs\swvl4\swvl4_20220901_0200.tif
Saved: output_tifs\swvl4\swvl4_20220901_0300.tif
Saved: output_tifs\swvl4\swvl4_20220901_0400.tif
Saved: output_tifs\swvl4\swvl4_20220901_0500.tif
Saved: output_tifs\swvl4\swvl4_20220901_0600.tif
Saved: output_tifs\swvl4\swvl4_20220901_0700.tif
Saved: output_tifs\swvl4\swvl4_20220901_0800.tif
Saved: output_tifs\swvl4\swvl4_20220901_0900.tif
Saved: output_tifs\swvl4\swvl4_20220901_1000.tif
Saved: output_tifs\swvl4\swvl4_20220901_1100.tif
Saved: output_tifs\swvl4\swvl4_20220901_1200.tif
Saved: output_tifs\swvl4\swvl4_20220901_1300.tif
Saved: output_tifs\swvl4\swvl4_20220901_1400.tif
Saved: output_tifs\swvl4\swvl4_20220901_1500.tif
Saved: output_tifs\swvl4\swvl4_20220901_1600.tif
Saved: output_tifs\swvl4\swvl4_20220901_1700.tif
Saved: output_tifs\swvl4\swvl4_20220901_1800.tif
Saved: output_tifs\swvl4\swvl4_20220901_1900.tif
Saved: output_tifs\swvl4\swvl4_20220901_2000.tif
Saved: output_tifs\swvl4\swvl4_20220901_2100.tif
Saved: output_tifs\swvl4\swvl4_20220901_2200.tif
Saved: output_tifs\swvl4\swvl4_20220901_2300.tif
Saved: output_tifs\swvl4\swvl4_20220902_0000.tif
Saved: output_tifs\swvl4\swvl4_20220902_0100.tif
Saved: output_tifs\swvl4\swvl4_20220902_0200.tif
Saved: output_tifs\swvl4\swvl4_20220902_0300.tif
Saved: output_tifs\swvl4\swvl4_20220902_0400.tif
Saved: output_tifs\swvl4\swvl4_20220902_0500.tif
Saved: output_tifs\swvl4\swvl4_20220902_0600.tif
Saved: output_tifs\swvl4\swvl4_20220902_0700.tif
Saved: output_tifs\swvl4\swvl4_20220902_0800.tif
Saved: output_tifs\swvl4\swvl4_20220902_0900.tif
Saved: output_tifs\swvl4\swvl4_20220902_1000.tif
Saved: output_tifs\swvl4\swvl4_20220902_1100.tif
Saved: output_tifs\swvl4\swvl4_20220902_1200.tif
Saved: output_tifs\swvl4\swvl4_20220902_1300.tif
Saved: output_tifs\swvl4\swvl4_20220902_1400.tif
Saved: output_tifs\swvl4\swvl4_20220902_1500.tif
Saved: output_tifs\swvl4\swvl4_20220902_1600.tif
Saved: output_tifs\swvl4\swvl4_20220902_1700.tif
Saved: output_tifs\swvl4\swvl4_20220902_1800.tif
Saved: output_tifs\swvl4\swvl4_20220902_1900.tif
Saved: output_tifs\swvl4\swvl4_20220902_2000.tif
Saved: output_tifs\swvl4\swvl4_20220902_2100.tif
Saved: output_tifs\swvl4\swvl4_20220902_2200.tif
Saved: output_tifs\swvl4\swvl4_20220902_2300.tif
Saved: output_tifs\swvl4\swvl4_20220903_0000.tif
Saved: output_tifs\swvl4\swvl4_20220903_0100.tif
Saved: output_tifs\swvl4\swvl4_20220903_0200.tif
Saved: output_tifs\swvl4\swvl4_20220903_0300.tif
Saved: output_tifs\swvl4\swvl4_20220903_0400.tif
Saved: output_tifs\swvl4\swvl4_20220903_0500.tif
Saved: output_tifs\swvl4\swvl4_20220903_0600.tif
Saved: output_tifs\swvl4\swvl4_20220903_0700.tif
Saved: output_tifs\swvl4\swvl4_20220903_0800.tif
Saved: output_tifs\swvl4\swvl4_20220903_0900.tif
Saved: output_tifs\swvl4\swvl4_20220903_1000.tif
Saved: output_tifs\swvl4\swvl4_20220903_1100.tif
Saved: output_tifs\swvl4\swvl4_20220903_1200.tif
Saved: output_tifs\swvl4\swvl4_20220903_1300.tif
Saved: output_tifs\swvl4\swvl4_20220903_1400.tif
Saved: output_tifs\swvl4\swvl4_20220903_1500.tif
Saved: output_tifs\swvl4\swvl4_20220903_1600.tif
Saved: output_tifs\swvl4\swvl4_20220903_1700.tif
Saved: output_tifs\swvl4\swvl4_20220903_1800.tif
Saved: output_tifs\swvl4\swvl4_20220903_1900.tif
Saved: output_tifs\swvl4\swvl4_20220903_2000.tif
Saved: output_tifs\swvl4\swvl4_20220903_2100.tif
Saved: output_tifs\swvl4\swvl4_20220903_2200.tif
Saved: output_tifs\swvl4\swvl4_20220903_2300.tif
Saved: output_tifs\swvl4\swvl4_20220904_0000.tif
Saved: output_tifs\swvl4\swvl4_20220904_0100.tif
Saved: output_tifs\swvl4\swvl4_20220904_0200.tif
Saved: output_tifs\swvl4\swvl4_20220904_0300.tif
Saved: output_tifs\swvl4\swvl4_20220904_0400.tif
Saved: output_tifs\swvl4\swvl4_20220904_0500.tif
Saved: output_tifs\swvl4\swvl4_20220904_0600.tif
Saved: output_tifs\swvl4\swvl4_20220904_0700.tif
Saved: output_tifs\swvl4\swvl4_20220904_0800.tif
Saved: output_tifs\swvl4\swvl4_20220904_0900.tif
Saved: output_tifs\swvl4\swvl4_20220904_1000.tif
Saved: output_tifs\swvl4\swvl4_20220904_1100.tif
Saved: output_tifs\swvl4\swvl4_20220904_1200.tif
Saved: output_tifs\swvl4\swvl4_20220904_1300.tif
Saved: output_tifs\swvl4\swvl4_20220904_1400.tif
Saved: output_tifs\swvl4\swvl4_20220904_1500.tif
Saved: output_tifs\swvl4\swvl4_20220904_1600.tif
Saved: output_tifs\swvl4\swvl4_20220904_1700.tif
Saved: output_tifs\swvl4\swvl4_20220904_1800.tif
Saved: output_tifs\swvl4\swvl4_20220904_1900.tif
Saved: output_tifs\swvl4\swvl4_20220904_2000.tif
Saved: output_tifs\swvl4\swvl4_20220904_2100.tif
Saved: output_tifs\swvl4\swvl4_20220904_2200.tif
Saved: output_tifs\swvl4\swvl4_20220904_2300.tif
Saved: output_tifs\swvl4\swvl4_20220905_0000.tif
Saved: output_tifs\swvl4\swvl4_20220905_0100.tif
Saved: output_tifs\swvl4\swvl4_20220905_0200.tif
Saved: output_tifs\swvl4\swvl4_20220905_0300.tif
Saved: output_tifs\swvl4\swvl4_20220905_0400.tif
Saved: output_tifs\swvl4\swvl4_20220905_0500.tif
Saved: output_tifs\swvl4\swvl4_20220905_0600.tif
Saved: output_tifs\swvl4\swvl4_20220905_0700.tif
Saved: output_tifs\swvl4\swvl4_20220905_0800.tif
Saved: output_tifs\swvl4\swvl4_20220905_0900.tif
Saved: output_tifs\swvl4\swvl4_20220905_1000.tif
Saved: output_tifs\swvl4\swvl4_20220905_1100.tif
Saved: output_tifs\swvl4\swvl4_20220905_1200.tif
Saved: output_tifs\swvl4\swvl4_20220905_1300.tif
Saved: output_tifs\swvl4\swvl4_20220905_1400.tif
Saved: output_tifs\swvl4\swvl4_20220905_1500.tif
Saved: output_tifs\swvl4\swvl4_20220905_1600.tif
Saved: output_tifs\swvl4\swvl4_20220905_1700.tif
Saved: output_tifs\swvl4\swvl4_20220905_1800.tif
Saved: output_tifs\swvl4\swvl4_20220905_1900.tif
Saved: output_tifs\swvl4\swvl4_20220905_2000.tif
Saved: output_tifs\swvl4\swvl4_20220905_2100.tif
Saved: output_tifs\swvl4\swvl4_20220905_2200.tif
Saved: output_tifs\swvl4\swvl4_20220905_2300.tif
Saved: output_tifs\swvl4\swvl4_20220906_0000.tif
Saved: output_tifs\swvl4\swvl4_20220906_0100.tif
Saved: output_tifs\swvl4\swvl4_20220906_0200.tif
Saved: output_tifs\swvl4\swvl4_20220906_0300.tif
Saved: output_tifs\swvl4\swvl4_20220906_0400.tif
Saved: output_tifs\swvl4\swvl4_20220906_0500.tif
Saved: output_tifs\swvl4\swvl4_20220906_0600.tif
Saved: output_tifs\swvl4\swvl4_20220906_0700.tif
Saved: output_tifs\swvl4\swvl4_20220906_0800.tif
Saved: output_tifs\swvl4\swvl4_20220906_0900.tif
Saved: output_tifs\swvl4\swvl4_20220906_1000.tif
Saved: output_tifs\swvl4\swvl4_20220906_1100.tif
Saved: output_tifs\swvl4\swvl4_20220906_1200.tif
Saved: output_tifs\swvl4\swvl4_20220906_1300.tif
Saved: output_tifs\swvl4\swvl4_20220906_1400.tif
Saved: output_tifs\swvl4\swvl4_20220906_1500.tif
Saved: output_tifs\swvl4\swvl4_20220906_1600.tif
Saved: output_tifs\swvl4\swvl4_20220906_1700.tif
Saved: output_tifs\swvl4\swvl4_20220906_1800.tif
Saved: output_tifs\swvl4\swvl4_20220906_1900.tif
Saved: output_tifs\swvl4\swvl4_20220906_2000.tif
Saved: output_tifs\swvl4\swvl4_20220906_2100.tif
Saved: output_tifs\swvl4\swvl4_20220906_2200.tif
Saved: output_tifs\swvl4\swvl4_20220906_2300.tif
Saved: output_tifs\swvl4\swvl4_20220907_0000.tif
Saved: output_tifs\swvl4\swvl4_20220907_0100.tif
Saved: output_tifs\swvl4\swvl4_20220907_0200.tif
Saved: output_tifs\swvl4\swvl4_20220907_0300.tif
Saved: output_tifs\swvl4\swvl4_20220907_0400.tif
Saved: output_tifs\swvl4\swvl4_20220907_0500.tif
Saved: output_tifs\swvl4\swvl4_20220907_0600.tif
Saved: output_tifs\swvl4\swvl4_20220907_0700.tif
Saved: output_tifs\swvl4\swvl4_20220907_0800.tif
Saved: output_tifs\swvl4\swvl4_20220907_0900.tif
Saved: output_tifs\swvl4\swvl4_20220907_1000.tif
Saved: output_tifs\swvl4\swvl4_20220907_1100.tif
Saved: output_tifs\swvl4\swvl4_20220907_1200.tif
Saved: output_tifs\swvl4\swvl4_20220907_1300.tif
Saved: output_tifs\swvl4\swvl4_20220907_1400.tif
Saved: output_tifs\swvl4\swvl4_20220907_1500.tif
Saved: output_tifs\swvl4\swvl4_20220907_1600.tif
Saved: output_tifs\swvl4\swvl4_20220907_1700.tif
Saved: output_tifs\swvl4\swvl4_20220907_1800.tif
Saved: output_tifs\swvl4\swvl4_20220907_1900.tif
Saved: output_tifs\swvl4\swvl4_20220907_2000.tif
Saved: output_tifs\swvl4\swvl4_20220907_2100.tif
Saved: output_tifs\swvl4\swvl4_20220907_2200.tif
Saved: output_tifs\swvl4\swvl4_20220907_2300.tif
Saved: output_tifs\swvl4\swvl4_20220908_0000.tif
Saved: output_tifs\swvl4\swvl4_20220908_0100.tif
Saved: output_tifs\swvl4\swvl4_20220908_0200.tif
Saved: output_tifs\swvl4\swvl4_20220908_0300.tif
Saved: output_tifs\swvl4\swvl4_20220908_0400.tif
Saved: output_tifs\swvl4\swvl4_20220908_0500.tif
Saved: output_tifs\swvl4\swvl4_20220908_0600.tif
Saved: output_tifs\swvl4\swvl4_20220908_0700.tif
Saved: output_tifs\swvl4\swvl4_20220908_0800.tif
Saved: output_tifs\swvl4\swvl4_20220908_0900.tif
Saved: output_tifs\swvl4\swvl4_20220908_1000.tif
Saved: output_tifs\swvl4\swvl4_20220908_1100.tif
Saved: output_tifs\swvl4\swvl4_20220908_1200.tif
Saved: output_tifs\swvl4\swvl4_20220908_1300.tif
Saved: output_tifs\swvl4\swvl4_20220908_1400.tif
Saved: output_tifs\swvl4\swvl4_20220908_1500.tif
Saved: output_tifs\swvl4\swvl4_20220908_1600.tif
Saved: output_tifs\swvl4\swvl4_20220908_1700.tif
Saved: output_tifs\swvl4\swvl4_20220908_1800.tif
Saved: output_tifs\swvl4\swvl4_20220908_1900.tif
Saved: output_tifs\swvl4\swvl4_20220908_2000.tif
Saved: output_tifs\swvl4\swvl4_20220908_2100.tif
Saved: output_tifs\swvl4\swvl4_20220908_2200.tif
Saved: output_tifs\swvl4\swvl4_20220908_2300.tif
Saved: output_tifs\swvl4\swvl4_20220909_0000.tif
Saved: output_tifs\swvl4\swvl4_20220909_0100.tif
Saved: output_tifs\swvl4\swvl4_20220909_0200.tif
Saved: output_tifs\swvl4\swvl4_20220909_0300.tif
Saved: output_tifs\swvl4\swvl4_20220909_0400.tif
Saved: output_tifs\swvl4\swvl4_20220909_0500.tif
Saved: output_tifs\swvl4\swvl4_20220909_0600.tif
Saved: output_tifs\swvl4\swvl4_20220909_0700.tif
Saved: output_tifs\swvl4\swvl4_20220909_0800.tif
Saved: output_tifs\swvl4\swvl4_20220909_0900.tif
Saved: output_tifs\swvl4\swvl4_20220909_1000.tif
Saved: output_tifs\swvl4\swvl4_20220909_1100.tif
Saved: output_tifs\swvl4\swvl4_20220909_1200.tif
Saved: output_tifs\swvl4\swvl4_20220909_1300.tif
Saved: output_tifs\swvl4\swvl4_20220909_1400.tif
Saved: output_tifs\swvl4\swvl4_20220909_1500.tif
Saved: output_tifs\swvl4\swvl4_20220909_1600.tif
Saved: output_tifs\swvl4\swvl4_20220909_1700.tif
Saved: output_tifs\swvl4\swvl4_20220909_1800.tif
Saved: output_tifs\swvl4\swvl4_20220909_1900.tif
Saved: output_tifs\swvl4\swvl4_20220909_2000.tif
Saved: output_tifs\swvl4\swvl4_20220909_2100.tif
Saved: output_tifs\swvl4\swvl4_20220909_2200.tif
Saved: output_tifs\swvl4\swvl4_20220909_2300.tif
Saved: output_tifs\swvl4\swvl4_20220910_0000.tif
Saved: output_tifs\swvl4\swvl4_20220910_0100.tif
Saved: output_tifs\swvl4\swvl4_20220910_0200.tif
Saved: output_tifs\swvl4\swvl4_20220910_0300.tif
Saved: output_tifs\swvl4\swvl4_20220910_0400.tif
Saved: output_tifs\swvl4\swvl4_20220910_0500.tif
Saved: output_tifs\swvl4\swvl4_20220910_0600.tif
Saved: output_tifs\swvl4\swvl4_20220910_0700.tif
Saved: output_tifs\swvl4\swvl4_20220910_0800.tif
Saved: output_tifs\swvl4\swvl4_20220910_0900.tif
Saved: output_tifs\swvl4\swvl4_20220910_1000.tif
Saved: output_tifs\swvl4\swvl4_20220910_1100.tif
Saved: output_tifs\swvl4\swvl4_20220910_1200.tif
Saved: output_tifs\swvl4\swvl4_20220910_1300.tif
Saved: output_tifs\swvl4\swvl4_20220910_1400.tif
Saved: output_tifs\swvl4\swvl4_20220910_1500.tif
Saved: output_tifs\swvl4\swvl4_20220910_1600.tif
Saved: output_tifs\swvl4\swvl4_20220910_1700.tif
Saved: output_tifs\swvl4\swvl4_20220910_1800.tif
Saved: output_tifs\swvl4\swvl4_20220910_1900.tif
Saved: output_tifs\swvl4\swvl4_20220910_2000.tif
Saved: output_tifs\swvl4\swvl4_20220910_2100.tif
Saved: output_tifs\swvl4\swvl4_20220910_2200.tif
Saved: output_tifs\swvl4\swvl4_20220910_2300.tif
Processing complete. GeoTIFF files saved in: output_tifs
尝试重投影 重采样
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 from osgeo import gdal, osrfault_tif = r'E:\zjh\luding\georesultfile\tif\fault.tif' def inspect_tif_metadata (tif_file ): try : ds = gdal.Open(tif_file) if ds is None : raise ValueError(f"Failed to open {tif_file} " ) geotransform = ds.GetGeoTransform() pixel_width = geotransform[1 ] pixel_height = abs (geotransform[5 ]) x_min = geotransform[0 ] y_max = geotransform[3 ] cols = ds.RasterXSize rows = ds.RasterYSize x_max = x_min + cols * pixel_width y_min = y_max - rows * pixel_height srs = osr.SpatialReference() srs.ImportFromWkt(ds.GetProjection()) epsg_code = srs.GetAuthorityCode(None ) if srs.GetAuthorityName(None ) == 'EPSG' else 'Unknown' proj_wkt = srs.ExportToWkt() print (f"Metadata for {tif_file} :" ) print ("=" * 50 ) print (f"CRS: EPSG:{epsg_code} " ) print (f"Projection WKT: {proj_wkt} " ) print (f"Pixel Size: {pixel_width} × {pixel_height} meters" ) print (f"Extent (xmin, ymin, xmax, ymax): ({x_min} , {y_min} , {x_max} , {y_max} )" ) print (f"Raster Size: {cols} columns × {rows} rows" ) print (f"Number of Bands: {ds.RasterCount} " ) print (f"NoData Value: {ds.GetRasterBand(1 ).GetNoDataValue()} " ) ds = None except Exception as e: print (f"Error reading {tif_file} : {e} " )
1 2 gdal.UseExceptions() inspect_tif_metadata(fault_tif)
Metadata for E:\zjh\luding\georesultfile\tif\fault.tif:
==================================================
CRS: EPSG:32662
Projection WKT: PROJCS["WGS 84 / Plate Carree",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","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Equirectangular"],PARAMETER["standard_parallel_1",0],PARAMETER["central_meridian",0],PARAMETER["false_easting",0],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Easting",EAST],AXIS["Northing",NORTH],AUTHORITY["EPSG","32662"]]
Pixel Size: 30.0 × 30.0 meters
Extent (xmin, ymin, xmax, ymax): (11298917.826947343, 3228233.2632888057, 11410277.826947343, 3339593.2632888057)
Raster Size: 3712 columns × 3712 rows
Number of Bands: 1
NoData Value: -3.4028230607370965e+38
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 import osimport globfrom osgeo import gdalinput_dir = 'output_tifs_new' output_dir = 'output_tifs_reprojected' target_epsg = 'EPSG:32662' target_resolution = (30 , 30 ) def reproject_geotiff (input_tif, output_tif, target_epsg, target_resolution ): try : src_ds = gdal.Open(input_tif) if src_ds is None : raise ValueError(f"Failed to open {input_tif} " ) warp_options = gdal.WarpOptions( dstSRS=target_epsg, xRes=target_resolution[0 ], yRes=target_resolution[1 ], resampleAlg='bilinear' , outputType=gdal.GDT_Float32, dstNodata=-9999 , srcNodata=-9999 , creationOptions=['COMPRESS=LZW' ], multithread=True ) os.makedirs(os.path.dirname(output_tif), exist_ok=True ) gdal.Warp( output_tif, src_ds, options=warp_options ) print (f'Reprojected: {output_tif} ' ) src_ds = None except Exception as e: print (f"Error reprojecting {input_tif} : {e} " ) def reproject_all_tiffs (input_dir, output_dir, target_epsg, target_resolution ): try : tiff_files = [] for root, _, files in os.walk(input_dir): for file in files: if file.endswith('.tif' ): tiff_files.append(os.path.join(root, file)) if not tiff_files: print (f"No TIFF files found in {input_dir} " ) return print (f"Found {len (tiff_files)} TIFF files to reproject" ) for input_tif in tiff_files: rel_path = os.path.relpath(input_tif, input_dir) output_tif = os.path.join(output_dir, rel_path) reproject_geotiff(input_tif, output_tif, target_epsg, target_resolution) except Exception as e: print (f"Error processing TIFF files: {e} " )
1 2 3 gdal.UseExceptions() reproject_all_tiffs(input_dir, output_dir, target_epsg, target_resolution) print ("Reprojection complete. Reprojected GeoTIFF files saved in:" , output_dir)
输出内容4
Found 96 TIFF files to reproject
Reprojected: output_tifs_reprojected\swvl1\swvl1_20220905_0000.tif
Reprojected: output_tifs_reprojected\swvl1\swvl1_20220905_0100.tif
Reprojected: output_tifs_reprojected\swvl1\swvl1_20220905_0200.tif
Reprojected: output_tifs_reprojected\swvl1\swvl1_20220905_0300.tif
Reprojected: output_tifs_reprojected\swvl1\swvl1_20220905_0400.tif
Reprojected: output_tifs_reprojected\swvl1\swvl1_20220905_0500.tif
Reprojected: output_tifs_reprojected\swvl1\swvl1_20220905_0600.tif
Reprojected: output_tifs_reprojected\swvl1\swvl1_20220905_0700.tif
Reprojected: output_tifs_reprojected\swvl1\swvl1_20220905_0800.tif
Reprojected: output_tifs_reprojected\swvl1\swvl1_20220905_0900.tif
Reprojected: output_tifs_reprojected\swvl1\swvl1_20220905_1000.tif
Reprojected: output_tifs_reprojected\swvl1\swvl1_20220905_1100.tif
Reprojected: output_tifs_reprojected\swvl1\swvl1_20220905_1200.tif
Reprojected: output_tifs_reprojected\swvl1\swvl1_20220905_1300.tif
Reprojected: output_tifs_reprojected\swvl1\swvl1_20220905_1400.tif
Reprojected: output_tifs_reprojected\swvl1\swvl1_20220905_1500.tif
Reprojected: output_tifs_reprojected\swvl1\swvl1_20220905_1600.tif
Reprojected: output_tifs_reprojected\swvl1\swvl1_20220905_1700.tif
Reprojected: output_tifs_reprojected\swvl1\swvl1_20220905_1800.tif
Reprojected: output_tifs_reprojected\swvl1\swvl1_20220905_1900.tif
Reprojected: output_tifs_reprojected\swvl1\swvl1_20220905_2000.tif
Reprojected: output_tifs_reprojected\swvl1\swvl1_20220905_2100.tif
Reprojected: output_tifs_reprojected\swvl1\swvl1_20220905_2200.tif
Reprojected: output_tifs_reprojected\swvl1\swvl1_20220905_2300.tif
Reprojected: output_tifs_reprojected\swvl2\swvl2_20220905_0000.tif
Reprojected: output_tifs_reprojected\swvl2\swvl2_20220905_0100.tif
Reprojected: output_tifs_reprojected\swvl2\swvl2_20220905_0200.tif
Reprojected: output_tifs_reprojected\swvl2\swvl2_20220905_0300.tif
Reprojected: output_tifs_reprojected\swvl2\swvl2_20220905_0400.tif
Reprojected: output_tifs_reprojected\swvl2\swvl2_20220905_0500.tif
Reprojected: output_tifs_reprojected\swvl2\swvl2_20220905_0600.tif
Reprojected: output_tifs_reprojected\swvl2\swvl2_20220905_0700.tif
Reprojected: output_tifs_reprojected\swvl2\swvl2_20220905_0800.tif
Reprojected: output_tifs_reprojected\swvl2\swvl2_20220905_0900.tif
Reprojected: output_tifs_reprojected\swvl2\swvl2_20220905_1000.tif
Reprojected: output_tifs_reprojected\swvl2\swvl2_20220905_1100.tif
Reprojected: output_tifs_reprojected\swvl2\swvl2_20220905_1200.tif
Reprojected: output_tifs_reprojected\swvl2\swvl2_20220905_1300.tif
Reprojected: output_tifs_reprojected\swvl2\swvl2_20220905_1400.tif
Reprojected: output_tifs_reprojected\swvl2\swvl2_20220905_1500.tif
Reprojected: output_tifs_reprojected\swvl2\swvl2_20220905_1600.tif
Reprojected: output_tifs_reprojected\swvl2\swvl2_20220905_1700.tif
Reprojected: output_tifs_reprojected\swvl2\swvl2_20220905_1800.tif
Reprojected: output_tifs_reprojected\swvl2\swvl2_20220905_1900.tif
Reprojected: output_tifs_reprojected\swvl2\swvl2_20220905_2000.tif
Reprojected: output_tifs_reprojected\swvl2\swvl2_20220905_2100.tif
Reprojected: output_tifs_reprojected\swvl2\swvl2_20220905_2200.tif
Reprojected: output_tifs_reprojected\swvl2\swvl2_20220905_2300.tif
Reprojected: output_tifs_reprojected\swvl3\swvl3_20220905_0000.tif
Reprojected: output_tifs_reprojected\swvl3\swvl3_20220905_0100.tif
Reprojected: output_tifs_reprojected\swvl3\swvl3_20220905_0200.tif
Reprojected: output_tifs_reprojected\swvl3\swvl3_20220905_0300.tif
Reprojected: output_tifs_reprojected\swvl3\swvl3_20220905_0400.tif
Reprojected: output_tifs_reprojected\swvl3\swvl3_20220905_0500.tif
Reprojected: output_tifs_reprojected\swvl3\swvl3_20220905_0600.tif
Reprojected: output_tifs_reprojected\swvl3\swvl3_20220905_0700.tif
Reprojected: output_tifs_reprojected\swvl3\swvl3_20220905_0800.tif
Reprojected: output_tifs_reprojected\swvl3\swvl3_20220905_0900.tif
Reprojected: output_tifs_reprojected\swvl3\swvl3_20220905_1000.tif
Reprojected: output_tifs_reprojected\swvl3\swvl3_20220905_1100.tif
Reprojected: output_tifs_reprojected\swvl3\swvl3_20220905_1200.tif
Reprojected: output_tifs_reprojected\swvl3\swvl3_20220905_1300.tif
Reprojected: output_tifs_reprojected\swvl3\swvl3_20220905_1400.tif
Reprojected: output_tifs_reprojected\swvl3\swvl3_20220905_1500.tif
Reprojected: output_tifs_reprojected\swvl3\swvl3_20220905_1600.tif
Reprojected: output_tifs_reprojected\swvl3\swvl3_20220905_1700.tif
Reprojected: output_tifs_reprojected\swvl3\swvl3_20220905_1800.tif
Reprojected: output_tifs_reprojected\swvl3\swvl3_20220905_1900.tif
Reprojected: output_tifs_reprojected\swvl3\swvl3_20220905_2000.tif
Reprojected: output_tifs_reprojected\swvl3\swvl3_20220905_2100.tif
Reprojected: output_tifs_reprojected\swvl3\swvl3_20220905_2200.tif
Reprojected: output_tifs_reprojected\swvl3\swvl3_20220905_2300.tif
Reprojected: output_tifs_reprojected\swvl4\swvl4_20220905_0000.tif
Reprojected: output_tifs_reprojected\swvl4\swvl4_20220905_0100.tif
Reprojected: output_tifs_reprojected\swvl4\swvl4_20220905_0200.tif
Reprojected: output_tifs_reprojected\swvl4\swvl4_20220905_0300.tif
Reprojected: output_tifs_reprojected\swvl4\swvl4_20220905_0400.tif
Reprojected: output_tifs_reprojected\swvl4\swvl4_20220905_0500.tif
Reprojected: output_tifs_reprojected\swvl4\swvl4_20220905_0600.tif
Reprojected: output_tifs_reprojected\swvl4\swvl4_20220905_0700.tif
Reprojected: output_tifs_reprojected\swvl4\swvl4_20220905_0800.tif
Reprojected: output_tifs_reprojected\swvl4\swvl4_20220905_0900.tif
Reprojected: output_tifs_reprojected\swvl4\swvl4_20220905_1000.tif
Reprojected: output_tifs_reprojected\swvl4\swvl4_20220905_1100.tif
Reprojected: output_tifs_reprojected\swvl4\swvl4_20220905_1200.tif
Reprojected: output_tifs_reprojected\swvl4\swvl4_20220905_1300.tif
Reprojected: output_tifs_reprojected\swvl4\swvl4_20220905_1400.tif
Reprojected: output_tifs_reprojected\swvl4\swvl4_20220905_1500.tif
Reprojected: output_tifs_reprojected\swvl4\swvl4_20220905_1600.tif
Reprojected: output_tifs_reprojected\swvl4\swvl4_20220905_1700.tif
Reprojected: output_tifs_reprojected\swvl4\swvl4_20220905_1800.tif
Reprojected: output_tifs_reprojected\swvl4\swvl4_20220905_1900.tif
Reprojected: output_tifs_reprojected\swvl4\swvl4_20220905_2000.tif
Reprojected: output_tifs_reprojected\swvl4\swvl4_20220905_2100.tif
Reprojected: output_tifs_reprojected\swvl4\swvl4_20220905_2200.tif
Reprojected: output_tifs_reprojected\swvl4\swvl4_20220905_2300.tif
Reprojection complete. Reprojected GeoTIFF files saved in: output_tifs_reprojected
1 jupyter nbconvert --to markdown filename.ipynb
在控制台输入命令:
hexo cl; hexo s
确认blog无误推送的话:
hexo cl; hexo g; hexo d