为什么使用make_geoccube在python中光栅化shapefile给出一个空的geotiff文件?



当我尝试栅格化属性CA的shapefile(冰图)时,它不起作用。它给了我一个大小为1 KB的GeoTIFF文件。当我在QGIS上打开它时,什么也没有显示,因为它是空的。

下面是警告:C:Usersccwanaconda3envsgeo_envlibsite-packagesrasterio_init_.py:230: notgeorereferencedwarning:给定矩阵等于仿射。恒等式或它的翻转对应物。GDAL可以忽略这个矩阵,并且在不引发错误的情况下不保存geotransform。这种行为有点特定于驱动程序。S = writer(path, mode, driver=driver,

)这里是数据链接:https://drive.google.com/file/d/12gavTn0rrIXnzVKXbW-dcKhRVzDnVhX1/view?usp=share_link

我也使用了这个prj文件:https://drive.google.com/file/d/1JQqcdz-W3OuGbqs0jNi2jLu-RcZTarSc/view?usp=share_link

import geopandas as gpd
from geocube.api.core import make_geocube
ds = gpd.read_file('cis_SGRDAEA_20110201_pl_a.shp')
ds['CA'] = ds['CA'].astype(float)
grid = make_geocube(vector_data=ds, measurements=['CA'], resolution=(5000,-5000))
grid.CA.rio.to_raster('test.tif')

此CRS以度为单位。代码要求的是5000度乘5000度的瓷砖。因为它只需要其中一个来覆盖整个地图,这就是它所使用的。然后生成1x1 geotiff。

改成:

grid = make_geocube(vector_data=ds, measurements=['CA'], resolution=(1,-1))

导致它创建一个更大的61x16栅格输出。

相关内容

  • 没有找到相关文章

最新更新