2011-10-01 63 views
3

我試圖在Python中使用底圖來繪製紐約地區的詳細海岸線。使用全分辨率數據集,曼哈頓看起來像矩形,而哈德森根本沒有出現在市中心。底圖可以在城市層面繪製詳細的海岸線嗎?

這是我正在使用的代碼。有什麼建議麼?

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() 

回答

5

底圖附帶的數據分辨率相當低(高分辨率數據佔用相當多的空間)。

您可以加載shapefile以使用底圖顯示。我借用this tutorial之前的代碼來做到這一點。該教程還鏈接到GADM,您可以在這裏下載任何國家的高分辨率形狀文件。

+0

我下載的數據文件100meg從完整的底圖發行。這仍然是低質量? – Laizer

+0

@ Laizer:呃,你試過了...爲了比較,GADM中的美國shapefile單獨來到了45 MB的壓縮文件。 –

1

你應該儘量把面積閾值至0.1,e.g:

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