zoukankan      html  css  js  c++  java
  • 基于python的arcgis底图添加(转)

    本文翻译自:Qingkai‘s Blog

    当使用python的Basemap库绘制地图时,选择一个漂亮的底图会为图片增色不少,但是使用map.bluemarble()、map.etopo()或者map.shadedrelief()等函数时,由于分辨率的原因,将图片缩小到较小范围会使得底图非常模糊。其实,创建一个高分辨率的底图的方式时使用arcgisimage方法。您可以在这里看到Basemap的详细说明。我将在下边的例子当中展示几个非常漂亮的例子。

    为了使用arcgisimage方法,你需要为不同的区域指定不同的epsg,并从以下列表中选择相应的服务(不同的服务请参考这里这里):

    1. World_Physical_Map
    2. World_Shaded_Relief
    3. World_Topo_Map
    4. NatGeo_World_Map
    5. ESRI_Imagery_World_2D
    6. World_Street_Map
    7. World_Imagery
    8. ESRI_StreetMap_World_2D
    9. Ocean_Basemap

    你会喜欢哪个底图呢?你可以在Qingkai’s Github下载脚本文件

    In [1]:

     1 from mpl_toolkits.basemap import Basemap
     2 import matplotlib.pyplot as plt
     3 
     4 # let's first define a helper function to plot the map of Bay Area in US. 
     5 
     6 def plot_map(service = 'World_Physical_Map', epsg = 4269, xpixels = 5000):
     7     # note, you need change the epsg for different region, 
     8     #US is 4269, and you can google the region you want
     9     plt.figure(figsize = (8, 8))
    10     m = Basemap(projection='mill',llcrnrlon=-123. ,llcrnrlat=37,
    11         urcrnrlon=-121 ,urcrnrlat=39, resolution = 'l', epsg = epsg)
    12     
    13     # xpixels controls the pixels in x direction, and if you leave ypixels
    14     # None, it will choose ypixels based on the aspect ratio
    15     m.arcgisimage(service=service, xpixels = xpixels, verbose= False)
    16     
    17     plt.show()

    1 - World_Physical_Map

    In [2]:

    plot_map(service = 'World_Physical_Map', epsg = 4269)

    2 - World_Shaded_Relief

    In [3]:

    plot_map(service='World_Shaded_Relief')

    3 - World_Topo_Map

    In [4]:

    plot_map(service='World_Topo_Map')

    4 - NatGeo_World_Map

    In [5]:

    plot_map(service='NatGeo_World_Map')

     

    5 - ESRI_Imagery_World_2D

    In [6]:

    plot_map(service='ESRI_Imagery_World_2D')

    6 - World_Street_Map

    In [7]:

    plot_map(service='World_Street_Map')

    7 - World_Imagery

    In [8]:

    plot_map(service='World_Imagery')

    8 - ESRI_StreetMap_World_2D

    In [9]:

    plot_map(service='ESRI_StreetMap_World_2D')

  • 相关阅读:
    Visual C# 2005中编写Socket网络程序
    [ASP.NET缓存BUG]这几天遇到的头痛问题之一,晚上遇到终于解决一劳永逸
    检测远程URL是否存在的三种方法<转>
    C#开源资源大汇总
    Asp.Net中动态页面转静态页面
    开发人员必进的网站
    基于反向代理的Web缓存加速——可缓存的CMS系统设计
    解决MVC3 服务器无法在已发送 HTTP 标头之后设置状态 问题
    HyperLink 控件控制图片宽度高度的几种方法
    C#进程注入
  • 原文地址:https://www.cnblogs.com/keeptg/p/11973968.html
Copyright © 2011-2022 走看看