Basemap能在城市一级绘制详细的海岸线吗?

2024-05-21 21:30:06 发布

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

我试图用Python中的Basemap绘制纽约地区的详细海岸线。使用全分辨率数据集,曼哈顿看起来像长方形,而哈德逊在市中心一点也没有出现。

这是我正在使用的代码。有什么建议吗?

    from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
import numpy as np

m = Basemap(projection='merc',llcrnrlat=40.55,urcrnrlat=40.82,\
            llcrnrlon=-74.1, urcrnrlon=-73.82, lat_ts=40.5,resolution='f')
m.drawcoastlines()
m.drawrivers()
m.fillcontinents(color='coral',lake_color='aqua')
m.drawmapboundary(fill_color='aqua') 
plt.show()

编辑

在进一步的探索中,我的问题似乎与河流有关。我可以得到海洋海岸线的详细边界,但仍然没有哈德逊河和哈莱姆河。当前代码:

m = Basemap(projection='merc',llcrnrlat=40.55,urcrnrlat=40.82,\
            llcrnrlon=-74.1, urcrnrlon=-73.82, lat_ts=40.5,resolution='f')
m.drawmapboundary(fill_color='#85A6D9')
m.drawcoastlines(color='#6D5F47', linewidth=.4)
m.drawrivers(color='#6D5F47', linewidth=.4)
m.fillcontinents(color='white',lake_color='#85A6D9')
plt.show()

Tags: 代码importaspltcolorbasemap海岸线lat
2条回答

basemap附带的数据分辨率很低(高分辨率数据占用了相当大的空间)。

您可以加载形状文件以与基本映射一起显示。我以前从this tutorial那里借过代码。本教程还链接到GADM,在这里您可以下载任何国家的高分辨率shapefile文件。

您应该尝试将区域阈值设置为0.1,例如:

m = Basemap(projection='merc',
            # ...
            area_thresh = 0.1)

相关问题 更多 >