我正在尝试将coastlines()地图的投影与shapefile的投影进行综合,其.prj文件说明:
GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",
SPHEROID["WGS_1984",6378137.0,298.257223563]],
PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]]
我的尝试是:
import matplotlib.pyplot as plt
import cartopy.crs as ccrs
from cartopy.io import shapereader
# set up a map with coastlines around Auckland:
plt.figure(figsize=(10, 10))
platecarree = ccrs.PlateCarree(globe=ccrs.Globe(datum='WGS84'))
ax = plt.axes(projection=platecarree)
extent = [174.25, 175.25, -37.5, -36.5]
ax.set_extent(extent)
ax.coastlines('10m',color='red')
# read in shapefile and plot the polygons:
shp2 = shapereader.Reader('auckland_geology_wgs84gcs.shp')
formations = shp2.records()
for formation in formations:
# plot water blue, and all other rocks yellow
if formation.attributes['MAIN_ROCK'] == b' ':
ax.add_geometries(formation.geometry, ccrs.PlateCarree(),facecolor='blue',alpha=.1)
else:
ax.add_geometries(formation.geometry, ccrs.PlateCarree(), facecolor='yellow',alpha=.1)
plt.show()
我尝试在我的platecarree定义中给出了参数,从prj文件中得到半径和反向展平,但如果设置甚至改变这些数字,我没有看到输出的任何变化。
此外,使用已定义的" platecarree"投影(使用WGS84调用地球仪)作为add_geometries调用中的crs,我的输出为空。
原样,结果在我看来就像a projection mismatch
答案 0 :(得分:1)
我尝试使用QGIS和从Natural Earth(10米海岸线)和GADM(NZ adm0级别)下载的数据重现您的问题。看起来NE10m海岸线是罪魁祸首! GADM与您的地质层完美对齐,而NE10m关闭(并变形)。 screenshot of QGIS with Geological map & coastlines