首页 > 解决方案 > Python统一两个地理系统

问题描述

我正在尝试统一 shp 文件和 DEM 文件的地理系统。我试图用来rasterstats.zonal_stats查找这两个数据之间的重叠,但它返回无。所以我认为地理系统存在一些问题。

我使用 geopandas 打印了 shp 文件 crs。crs 显示

<Projected CRS: EPSG:26917>
Name: NAD83 / UTM zone 17N
Axis Info [cartesian]:
- E[east]: Easting (metre)
- N[north]: Northing (metre)
Area of Use:
- name: North America - between 84°W and 78°W - onshore and offshore. Canada - Nunavut; Ontario; Quebec. United States (USA) - Florida; Georgia; Kentucky; Maryland; Michigan; New York; North Carolina; Ohio; Pennsylvania; South Carolina; Tennessee; Virginia; West Virginia.
- bounds: (-84.0, 23.81, -78.0, 84.0)
Coordinate Operation:
- name: UTM zone 17N
- method: Transverse Mercator
Datum: North American Datum 1983
- Ellipsoid: GRS 1980
- Prime Meridian: Greenwich

DEM文件的crs是rasterio得到的,它显示crs是

CRS.from_epsg(26917)

看起来这两个文件都在使用 CRS 26917。但是当我绘制这两个文件时。shp 文件的 x 轴从 -81.9 到 -81.5。DEM文件的x轴是从420000到500000。所以geo系统肯定有问题。

我应该如何统一这两个,以便我可以将它们绘制在同一张图片中并执行rasterstats.zonal_stats

标签: geopandasrasterio

解决方案


重新投影栅格比在 geopandas 中更改几何图形的 crs 更复杂;所以如果知道DEM的crs,改shp文件的crs可能会更快。gdf.to_crs(raster_crs)

如果 DEM 的 CRS 未知,则应优先使用 QGIS 的 TSM 找到正确的 CRS。(显示 OSM 等在线地图后,输入栅格并确保其代表正确的位置。)

接下来要做的是使用 shp 裁剪栅格。使用栅格时,这称为 MASK。请参考以下链接。

https://rasterio.readthedocs.io/en/latest/topics/masking-by-shapefile.html


推荐阅读