netcdf geotiff java_在python中提取特定的netcdf信息并转换为GeoTIFF

本文介绍了作者在尝试从netCDF文件中提取数据并转换为GeoTIFF格式的过程中遇到的问题。作者成功读取了netCDF数据,并创建了2D数组,但遇到了如何正确设置GeoTIFF的地理变换和投影的问题。目前的代码导致生成的GeoTIFF显示为黑色,只有一条白线。作者寻求帮助以解决netCDF到GeoTIFF转换的地理信息设置问题。
摘要由CSDN通过智能技术生成

我试图从netCDF文件中提取一组特定的数据,然后将这些数据转换为GeoTIFF。在

到目前为止,我已经成功地使用netCDF4提取了我想要的数据,文件中的所有数据都存储为1d数组(lat、lon、我想要的数据),并将它们分配给一个2d数组。我正在使用的netcdf文件已子集到特定区域。但从这里我不知所措。在

通过以下链接,我对geotiff转换的工作原理有一点了解:

以下是我目前的情况:import netCDF4

import numpy as np

from osgeo import gdal

from osgeo import osr

#Reading in data from files and extracting said data

ncfile = netCDF4.dataset("data.nc", 'r')

dataw = ncfile.variables["dataw"][:]

lat = ncfile.variables["Latitude"][:]

long = ncfile.variables["Longitude"][:]

n = len(dataw)

x = np.zeros((n,3), float)

x[:,0] = long[:]

x[:,1] = lat[:]

x[:,2] = dataw[:]

nx = len(long)

ny = len(lat)

xmin, ymin, xmax, ymax = [long.min(), lat.min(), long.max(), lat.max()]

xres = (xmax - xmin) / float(nx)

yres = (ymax - ymin) / float(ny)

geotransform = (xmin, xres, 0, ymax, 0, -yres)

#Creates 1 raster band file

dst_ds = gdal.GetDriverByName('GTiff').Create('myGeoTIFF.tif', ny, nx, 1, gdal.GDT_Float32)

dst_ds.SetGeoTransform(geotransform) # specify coords

srs = osr.SpatialReference() # establish encoding

srs.ImportFromEPSG(3857) # WGS84 lat/long

dst_ds.SetProjection(srs.ExportToWkt()) # export coords to file

dst_ds.GetRasterBand(1).WriteArray(x) # write r-band to the raster

dst_ds.FlushCache() # write to disk

dst_ds = None # save, close

以上geotiff的创作过程主要来源于:

我尝试这样做是基于这样一个理解:我要写入光栅的数组是一个包含3列、2个单词和1个数据的2d数组。我在snap中检查的结果是一个黑色页面,左侧有一条白线。在

所以我的问题是:

如何从netcdf文件中提取必要的geotransform数据,适当地调整geotransform参数,然后使用提取的lat long+dataw数组写入geotiff文件?在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值