• 实现地图输出的相关知识


    shapefile文件:Shapefile文件是描述空间数据的几何和属性特征的非拓扑实体矢量数据结构的一种格式,由ESRI公司开发。

    一个Shapefile文件最少包括三个文件:
    主文件(*.shp)、--存储地理要素的几何图形的文件。
    索引文件(*.shx)、--存储图形要素与属性信息索引的文件。
    dBASE表文件(*.dbf),--存储要素信息属性的dBase表文件。
    除此之外还有很多可选的文件。
     
    (1)到http://www.gadm.org/download 下载中国shapefile格式的资料,下载后的文件名为CHN_adm_shp.zip
    Basemap主要是将位置的经纬度坐标转换到图中的坐标,因此要绘制某一个省的地图,需要知道对应的轮廓线信息,在Basemap中,这是通过shapefile来实现的。因此我们首先需要得到相关的文件信息,再将其导入Basemap中就可以了。
    相关的shapefile可以从GADM()中下载,不过网站貌似不太容易打开。具体过程大致如下:
    作者:何明涛
    链接:https://www.zhihu.com/question/49669755/answer/117962271
    来源:知乎
    作者:何明涛
    链接:https://www.zhihu.com/question/49669755/answer/117962271
    来源:知乎
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
    
    #-*- coding: utf-8 -*-
    import numpy as np
    import matplotlib.pyplot as plt
    from mpl_toolkits.basemap import Basemap 
    from matplotlib.patches import Polygon
    
    fig = plt.figure()
    ax1 = fig.add_axes([0.1,0.1,0.8,0.8])
    bmap = Basemap(llcrnrlon=115,llcrnrlat=23,urcrnrlon=121,urcrnrlat=29,
                projection='lcc',lat_1=33,lat_2=45,lon_0=120, ax=ax1)
    shp_info = bmap.readshapefile('CHN_adm/CHN_adm3','states',drawbounds=False)
    
    for info, shp in zip(bmap.states_info, bmap.states):
        proid = info['NAME_1']
        if proid == 'Fujian':
            poly = Polygon(shp,facecolor='w',edgecolor='b', lw=0.2)
            ax1.add_patch(poly)
        
    bmap.drawcoastlines()
    bmap.drawcountries()
    bmap.drawparallels(np.arange(23,29,2),labels=[1,0,0,0])
    bmap.drawmeridians(np.arange(115,121,2),labels=[0,0,0,1])
    plt.title('Fujian Province')
    plt.savefig('fig_province.png', dpi=100, bbox_inches='tight')
    plt.clf()
    plt.close()
    

      

    tips:
    1, 有非常详细的关于在Basemap中调用shapefile的说明。
    2, 采用Basemap中自带的shapefile.py读取上述文件时,会提示错误,利下载解压后的shapefile.py替换就可以了。
    主要用到的文件是CHN_adm.shp,另外CHM_adm.csv 可以用notepad打开查看一下文件内容
     
    http://blog.csdn.net/ouening/article/details/55227364
     
  • 相关阅读:
    POJ 1201 Intervals 差分约束
    netframework2.0,asp.net2.0,vs.net 2005
    学习.net第一天
    VS.NET 2003 控件命名规范
    .Net生成共享程序集
    汉字的编码
    [转]用C#实现连接池
    SQL表自连接用法
    一道很好玩的OOP面试题,今天比较有空,所有做了一下
    C#编程规范(2008年4月新版)
  • 原文地址:https://www.cnblogs.com/ameile/p/6694982.html
Copyright © 2020-2023  润新知