2013-07-21 53 views
1

我最近遇到了一系列免费的GIS数据,包括conus中的所有城市。 shapefile包含几层信息,如名称,人口,exct。我绘制了使用shapefile reader中构建的底图来绘制城市的位置。然而,我似乎无法找到一种方法来绘制城市名称和地点。有没有办法使用底图来绘制城市名称及其位置?我使用enthoughts冠层分布,因为我是一名学生,所以某些插件模块可能无法获得。我已经链接了我的输出样本,并链接到帖子底部的shapefile。如果任何人有任何想法,这将是伟大的!Python城市形状文件

感谢, 安德鲁sample output showing Western Oklahoma roads and cities

链接从NOAA国家天气服务SHAPEFILE http://www.nws.noaa.gov/geodata/catalog/national/html/cities.htm

回答

0

从文档中的示例下面应该指向你在正确的方向:

from mpl_toolkits.basemap import Basemap 
import matplotlib.pyplot as plt 
import numpy as np 
# setup Lambert Conformal basemap. 
m = Basemap(width=12000000,height=9000000,projection='lcc', 
      resolution='c',lat_1=45.,lat_2=55,lat_0=50,lon_0=-107.) 
# draw a boundary around the map, fill the background. 
# this background will end up being the ocean color, since 
# the continents will be drawn on top. 
m.drawmapboundary(fill_color='aqua') 
# fill continents, set lake color same as ocean color. 
m.fillcontinents(color='coral',lake_color='aqua') 
# draw parallels and meridians. 
# label parallels on right and top 
# meridians on bottom and left 
parallels = np.arange(0.,81,10.) 
# labels = [left,right,top,bottom] 
m.drawparallels(parallels,labels=[False,True,True,False]) 
meridians = np.arange(10.,351.,20.) 
m.drawmeridians(meridians,labels=[True,False,False,True]) 
# plot blue dot on Boulder, colorado and label it as such. 
lon, lat = -104.237, 40.125 # Location of Boulder 
# convert to map projection coords. 
# Note that lon,lat can be scalars, lists or numpy arrays. 
xpt,ypt = m(lon,lat) 
# convert back to lat/lon 
lonpt, latpt = m(xpt,ypt,inverse=True) 
m.plot(xpt,ypt,'bo') # plot a blue dot there 
# put some text next to the dot, offset a little bit 
# (the offset is in map projection coordinates) 
plt.text(xpt+100000,ypt+100000,'Boulder (%5.1fW,%3.1fN)' % (lonpt,latpt)) 
plt.show() 
+0

谢谢反馈史蒂夫!实际上,我曾经使用过这种方法来绘制事物,但是我正在使用shapefile,并且手动绘制城市和他们的名字的位置对我来说是不可能的。绘制位置是很容易的部分,并且已经完成,实际上只会遇到与名称有关的问题。 – Twisterkid34

+0

只需从shapefile中提取名称以及lat/long,并如上所示绘制它,有关提取字段数据的详细信息,请参阅https://pypi.python.org/pypi/pyshp#id6上的pyshp文档。 –