Я пытаюсь преобразовать данные из файла netcdf глобальных данных LDAS NASA (доступно здесь по умолчанию для поднаборов -60 и -180,180 и всех переменных) в геотиф вWGS 1984 проекция.Я использую GDAL и Python 3.
Я написал более или менее тот же код, который я видел в примерах и других вопросах о создании геотифов, и он работает, пока я не попытаюсь установить проекцию.
Когда я пытаюсь установить проекцию, я сталкиваюсь с проблемами.я попробовал new_geotiff.SetProjection('WGS84')
и получил Only OGC WKT Projections supported for writing to GeoTIFF. WGS84 not supported.
я попробовал
spatialreference = osr.SpatialReference().ImportFromWkt('WGS84')
new_geotiff.SetProjection(spatialreference)
и получил ошибку
TypeError: in method 'Dataset_SetProjection', argument 2 of type 'char const *'
Вот вся функция, которую я написал:
import netCDF4
import numpy
import gdal, gdalconst
import osr
# Reading in data from the netcdf
nc_obj = netCDF4.Dataset(file_path, 'r')
var_data = nc_obj.variables[var][:]
lat = nc_obj.variables['lat'][:]
lon = nc_obj.variables['lon'][:]
# format the array of information going to the tiff
x = numpy.asarray(var_data)[0, :, :]
# Creates geotiff raster file (filepath, x-dimensions, y-dimensions, number of bands, datatype)
geotiffdriver = gdal.GetDriverByName('GTiff')
new_geotiff = geotiffdriver.Create(save_dir_path + 'geotiff.tif', len(lon), len(lat), 1, gdal.GDT_Float32)
# calculate the geographic transform information and set the projection
# geotransform = (topleft x, x-width/spacing, orientation angle, topleft y, orientation angle, y-width/spacing)
yorigin = lat.max()
xorigin = lon.min()
xres = lat[1] - lat[0]
yres = lon[1] - lon[0]
new_geotiff.SetGeoTransform((xorigin, xres, 0, yorigin, 0, -yres))
# Set the projection of the geotiff
new_geotiff.SetProjection('WGS84') # set the projection for the new geotiff
# actually write the data array to the tiff file and save it
new_geotiff.GetRasterBand(1).WriteArray(x) # write band to the raster (variable array)
new_geotiff.FlushCache() # write to disk
Не уверен, где я иду не так.Я трачу свое время и на геотрансформатор, просто не знаю, где на самом деле посмотреть