#!/usr/bin/env python # coding: utf-8 # WebサイトからNDVI、LSTをスクレイピングで自動ダウンロード ## URLのフォルダ名を取得するコード ## ダウンロード時に必要なユーザー名、パスワードを設定する User_name = '〇〇' password = '◆◆' ## 何秒ごとにデータをダウンロードするか Download_Time = 10 # 画像出力フォルダ格納用(HDFファイル)の自動生成処理 import os import math new_dir = './Data/' os.makedirs(new_dir, exist_ok=True) new_dir_path_NDVI = './Data/NDVI_HDF' new_dir_pathLST = './Data/LST_HDF' os.makedirs(new_dir_path_NDVI, exist_ok=True) os.makedirs(new_dir_pathLST, exist_ok=True) os.chdir(new_dir_pathLST) # LSTをダウンロードする場合 import requests from requests.auth import HTTPDigestAuth import time from bs4 import BeautifulSoup ## MODISプロダクトのURLを指定 # 取得したいデータのURLに応じて変更してください。 ## LST →https://e4ftl01.cr.usgs.gov/MOLT/MOD11A2.061/ ## NDVI →https://e4ftl01.cr.usgs.gov/MOLT/MOD13A2.061/ # BASE_URLとurl00は揃える必要があることに注意。 BASE_URL = u"https://e4ftl01.cr.usgs.gov/MOLT/MOD11A2.061/" EXTENSION = u"hdf" url00 = [ u"https://e4ftl01.cr.usgs.gov/MOLT/MOD11A2.061/", ] for url in url00: number_urls = [] r = requests.get(url) soup = BeautifulSoup(r.content) links = soup.findAll('a') for link in links: href = link.get('href') number_urls.append(href) # 年月日だけ取り出す Num = number_urls[7:] # 2012年から2015年までのデータを取り出す Num_15 = Num[545:729] # 参考:例えば、2018.01.01〜2022.12.27まで取得する場合 # id_intv = math.ceil(365/8) # id_intv = 46ずつ1年で増える # Num_tmp = Num[729+id_intv*3:729+id_intv*7] というように設定する。 urls_list= [] # URLをリスト化しておく for g in Num_15: P = BASE_URL + str(g) urls_list.append(P) # 日本の座標を取り出す # https://lpdaac.usgs.gov/products/mod13a2v006/ # → Sinusoidal投影法 # https://suzaku.eorc.jaxa.jp/GCOM_C/users_portal/faq/docs/ # GCOM-C_Products_Users_Guide_entrylevel__attach4_jp_191007.pdf # → Sinusoidal投影法における日本の位置を特定 japan_list= ["h27v04","h28v04","h28v05","h29v05"] for b in range(len(japan_list)): Japan_EXTENSION = japan_list[b] for i in range(len(urls_list)): EXTENSION = u"hdf" BASE_URL = urls_list[i] urls = urls_list[i] # for url in urls: # print(url) download_urls = [] r = requests.get(urls) soup = BeautifulSoup(r.content) links = soup.findAll('a') # URLの抽出 for link in links: href = link.get('href') if href and EXTENSION and Japan_EXTENSION in href: download_urls.append(href) for download_url in download_urls[:-1]: # 指定した時間ごとにデータを取得する time.sleep(Download_Time) file_name = download_url.split("/")[-1] if BASE_URL in download_url: r0 = requests.get(download_url).url r1 = requests.get(r0,auth=(User_name,password)) else: r0 = requests.get(BASE_URL + download_url).url r1 = requests.get(r0,auth=(User_name,password)) # ファイルの保存 # 認証が通った(200)ならば if r1.status_code == 200: f = open(file_name, 'wb') f.write(r1.content) f.close()
[GRASSのインストール、標高データを用いた地滑り危険度マップの作成]
[植生指数 (NDVI) の計算、表示]
[標高データ (SRTM)の表示、植生指数 (NDVI) の3次元表示]
[反射率、輝度温度、標高データを用いた土地被覆分類]
[QGIS, Rを用いた公示地価データの空間統計分析:空間的自己回帰モデル]
[QGIS, Rを用いた公示地価データの空間統計分析:静的な時空間モデリング]
[Rを用いた衛星データ(LST, NDVI)の空間統計分析]
[Pythonを用いた空間統計分析のための衛星データ(LST, NDVI)の処理1(市町村別データの生成)]
[Pythonを用いた空間統計分析のための衛星データ(LST, NDVI)の処理2(人口データの重みを加味した市町村別データの生成)]