またもGPT4にコーディングをお任せしてしまいました。Python3です。
幾つかのPIPのインストールとNASAのサイトへのユーザ登録が必要ですが、PIPの方法が分からない人はPython自体を勉強してください。
NASAのサイトへの登録方法は後日追記します。
Ptythonコードは下記のとおりです。実行結果の画像を先に公開します。
サーバが多忙の様で、画像はインターネットから直接取得する事は諦めました。
ローカルにダウンロードした上で実行して居ます。
→普通にWindows標準のアプリで画像見てるのと何が違うのかは聞かないでください。
勿論これから発展させていくので。。ダウンロードしてきた画像は僅か60MBファイルなのですが「ファイルが大きすぎるのでDos-Bombとして判断されるのです。Pythonは主に画像圧縮をしています。結局はVPS使うのが正解なのかもです。

ただし、「観たい場所」の拡大は可能な様です。私がやりたい事(洋上風力発電所の建設されそうな場所、そして地上へケーブルが引き込まれる場所を予想し、地価が上がりそうなところを探す、のが目的)の関係を秘匿するため、これ以上の拡大画像は載せません。でも結局、画像が粗過ぎて使い物にはならなそうです。でもせっかくNASAにユーザー登録したので、宇宙の画像とかを解析して遊ぶのに応用でもしておこうかなと。

Pythonのコードは以下の通りです。
import numpy as np
import matplotlib.pyplot as plt
from PIL import Image, ImageFile
Pillowの画像サイズ制限を解除
Image.MAX_IMAGE_PIXELS = None
ImageFile.LOAD_TRUNCATED_IMAGES = True
ローカルの .tif ファイルのパス
LOCAL_TIF_FILE = “MOD44WA1.A2023001.061.Global-WGS84.500.2024074204203.tif”
.tif 画像をリサイズして読み込む
def load_local_tif():
“””ローカルの TIF 画像を開き、リサイズ”””
try:
with Image.open(LOCAL_TIF_FILE) as img:
scale_factor = 0.1 # 10% のサイズに縮小
new_size = (int(img.width * scale_factor), int(img.height * scale_factor))
img_resized = img.resize(new_size, Image.LANCZOS)
return np.array(img_resized)
except Exception as e:
print(f”Error: Failed to open TIF file: {e}”)
return np.zeros((100, 100, 3), dtype=np.uint8)
マッピング
def plot_satellite_image(image):
“””衛星画像をプロット”””
fig, ax = plt.subplots(figsize=(10, 6))
ax.imshow(image, origin=”upper”)
plt.title(“MODIS Satellite Im