2023年4月8日土曜日

Pythonで地図作成その4

ご閲覧、ありがとうございます。

前回(その3)で作成した地図に、
アメダス地点を上書きします。


import geopandas as gpd
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline
import matplotlib as mpl
import numpy as np
import shutil
from PIL import Image
import requests

japan_resize = gpd.read_file("/home/yasube873/Python/weather/map/japan_map.shp", encoding='utf-8')


url = "https://www.jma.go.jp/bosai/amedas/const/amedastable.json"
with requests.get(url) as response:
    json = response.json()
    df = pd.DataFrame(json).transpose()
df


df["lat"] = df["lat"].str[0] + df["lat"].str[1]/60
df["lon"] = df["lon"].str[0] + df["lon"].str[1]/60

japan_resize = japan_resize[['N03_001','N03_002','N03_007','geometry']]



fig, ax = plt.subplots(figsize = (21,16))
plt.xlim(128, 149)
plt.ylim(30, 46)
plt.xticks([])
plt.yticks([])
plt.gca().spines['left'].set_visible(False)
plt.gca().spines['top'].set_visible(False)
plt.gca().spines['right'].set_visible(False)
plt.gca().spines['bottom'].set_visible(False)
japan_resize.plot(ax=ax, facecolor='white', edgecolor='black', linewidth=1)
df.plot.scatter(ax=ax, x='lon', y='lat', s=50)
plt.xlabel("")
plt.ylabel("")
plt.show()
fig.savefig("hokkaido-kyushu_amedas.png")



fig, ax = plt.subplots(figsize = (10,6.6))
plt.xlim(122, 132)
plt.ylim(23.5, 30.1)
plt.xticks([])
plt.yticks([])
plt.gca().spines['left'].set_visible(False)
plt.gca().spines['top'].set_visible(False)
japan_resize.plot(ax=ax, facecolor='white', edgecolor='black', linewidth=1)
df.plot.scatter(ax=ax, x='lon', y='lat', s=50)
plt.xlabel("")
plt.ylabel("")
plt.show()
fig.savefig("okinawa_amedas.png")



fig, ax = plt.subplots(figsize = (0.5,1))
plt.xlim(142, 142.5)
plt.ylim(27, 28)
plt.xticks([])
plt.yticks([])
plt.gca().spines['right'].set_visible(False)
plt.gca().spines['bottom'].set_visible(False)
japan_resize.plot(ax=ax, facecolor='white', edgecolor='black', linewidth=1)
df.plot.scatter(ax=ax, x='lon', y='lat', s=50)
plt.xlabel("")
plt.ylabel("")
plt.show()
fig.savefig("ogasawara_amedas.png")


im1 = Image.open('/home/yasube873/Python/weather/map/00_japan/hokkaido-kyushu_amedas.png')
im2 = Image.open('/home/yasube873/Python/weather/map/00_japan/okinawa_amedas.png')

back_im = im1.copy()
back_im.paste(im2, (135, 110))
back_im.save('/home/yasube873/Python/weather/map/00_japan/japan_resize_amedas.png')

im1 = Image.open('/home/yasube873/Python/weather/map/00_japan/japan_resize_amedas.png')
im2 = Image.open('/home/yasube873/Python/weather/map/00_japan/ogasawara_amedas.png')



back_im = im1.copy()
back_im.paste(im2, (1300, 1300))
back_im.save('/home/yasube873/Python/weather/map/00_japan/japan_resize_amedas.png')
back_im.show()

カラーバーの作成をしたのですが、
難しすぎて挫折。

また、アメダス地点の上書きに成功したのは良いのですが、
観測値をどのように取り込むか、
それが解決しないと意味がありません。

0 件のコメント:

コメントを投稿