Цель состоит в том, чтобы нанести каждое землетрясение из CSV на стандартную карту Cartopy. Итак, одно землетрясение - это одна фотография. Эти фотографии будут преобразованы в GIF.
Код
import os
os.chdir(r'path')
import matplotlib.pyplot as plt
import pandas as pd
import geopandas as gpd
import cartopy.crs as ccrs
from geopandas import GeoDataFrame
from shapely.geometry import Point
df = pd.read_csv('emscPhilippines2008to2020_5lines.csv')
crs = "epsg:32651"
geometry = gpd.points_from_xy(df.Longitude, df.Latitude)
gdf = GeoDataFrame(df, crs=crs, geometry=geometry)
proj = ccrs.PlateCarree()
#projutm = ccrs.UTM(51)
ph = gpd.read_file('Provinces.shp')
bounds = ph.total_bounds
for i in range(gdf.shape[0]):
ax = plt.axes(projection=proj)
ax.stock_img()
ax.set_extent(bounds, crs=proj)
g = gdf.iloc[i].geometry
date = gdf.iloc[i]['Date']
time = gdf.iloc[i]['Time_UTC']
info = (date + " " + time)
plt.plot(g.x, g.y, marker='o', color='red', markersize=15)
plt.suptitle('Earthquakes in the Philippines from 2008 to 2020')
plt.title(info)e
plt.show()
#plt.savefig("earthquake{0}.png".format(i))
plt.show()
Результаты
Но если я закомментирую (поставлю # перед) строку ax.set_extent, результатом будет глобальная карта.
Даже если я использую ограничивающие прямоугольники PH отсюда , то есть [117.17427453, 5.58100332277, 126.537423944, 18.5052273625], фокус все равно неправильный.