Когда я получаю общие границы шейп-файла, а именно llcrnrlon, llcrnrlat, urcrnrlon и urcrnrlat? Это нужно для использования Maptlotlib Basemap - PullRequest
0 голосов
/ 26 мая 2020

Цель состоит в том, чтобы использовать веб-карту ESRI в качестве базовой карты под шейп-файлом для сценария, который визуализирует землетрясения на Филиппинах. Но сначала я практикуюсь в использовании базовой карты в отдельном скрипте.

Чтобы получить общие границы шейп-файла Филиппин из GADM:

import geopandas as gpd
prov  = gpd.read_file('Provinces.shp')

In: prov.total_bounds
Out: array([116.9283371 ,   4.58693981, 126.60534668,  21.07014084])

Чтобы получить базовую карту ESRI:

import os
os.chdir(r'path')
import matplotlib.pyplot as plt
import numpy as np
os.environ['PROJ_LIB'] = r'path'
from mpl_toolkits.basemap import Basemap

tb = {'llon': 116.9283371, 'llat': 4.58693981, 
      'ulon': 126.60534668, 'ulat': 21.07014084}

map = Basemap(projection="tmerc", ellps='WGS84', epsg='4326',
              llcrnrlon=tb['llon'], llcrnrlat=tb['llat'],
              urcrnrlon=tb['ulon'], urcrnrlat =tb['ulat'],
              lon_0=np.average([116.9283371, 126.60534668]), 
              lat_0=np.average([4.58693981, 21.07014084]))

map.arcgisimage(service='ESRI_Imagery_World_2D', xpixels=2000, 
                verbose=True, zorder=1)
plt.show()

Результат - пустой график

enter image description here

Код основан на этой теме: Использование изображения Google Maps в качестве слоя с базовой картой Matplotlib?

...