如何使用Python、GDAL、ArcPy将.grib文件转换成具有正确投影的GeoTIFF

2024-05-29 11:44:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图将一个.grib文件转换成GeoTIFF,以便在GIS中使用(尤其是ArcGIS),但是在使图像正确投影时遇到了困难。我已经能够使用Python中的GDAL创建了一个GeoTIFF,它显示了数据,但是当引入ArcGIS时,它并没有显示在正确的位置。生成的图像如下所示。在

What the data looks like when I put it into ArcGIS

我正在处理的数据可以从以下位置下载:https://gimms.gsfc.nasa.gov/SMOS/SMAP/L05/

我正在尝试将数据投影到WGS84网络墨卡托(辅助球体),EPSG:3857

注意:我已经尝试通过创建一个光栅马赛克来通过ArcMap引入数据,这应该能够处理.grib数据,但我没有任何运气。在

更新:我也尝试过使用projectraster工具,但是ArcGIS不喜欢来自.grib文件的默认投影,并给出了一个错误。在

我使用的代码:

import gdal

src_filename = r"C:\att\project\arcshare\public\disaster_response\nrt_products\smap\20150402_20150404_anom1.grib"
dst_filename = r"C:\att\project\arcshare\public\disaster_response\nrt_products\smap\smap_py_test1.tif"

#Open existing dataset
src_ds = gdal.Open(src_filename)

#Open output format driver, see gdal_translate --formats for list
format = "GTiff"
driver = gdal.GetDriverByName( format )

#Output to new format
dst_file = driver.CreateCopy( dst_filename, src_ds, 0 )

#Properly close the datasets to flush to disk
dst_ds = None
src_ds = None

我不太精通在Python中使用GDAL或GDAL,因此任何帮助或提示都将不胜感激。在


Tags: to数据srcformatdriverdsopenfilename
1条回答
网友
1楼 · 发布于 2024-05-29 11:44:57

像这样的东西应该把你的本地坐标转换成你想要的投影。这还没有经过测试。(可以用纬度代替纬度)。在

from cfgrib import xarray_store
from pyproj import Proj, transform

grib_data = xarray_store.open_dataset('your_grib_file.grib')
lat = grib_data.latitudes.value
lon = grib_data.longitudes.value
lon_transformed, lat_transformed = transform (Proj(init='init_projection'), 
 Proj(init='target_projection', lon, lat)

相关问题 更多 >

    热门问题