Pythonを用いた空間統計分析のための衛星データ(LST, NDVI)の処理1

WebサイトからのNDVI・LSTデータの自動ダウンロード

#!/usr/bin/env python
# coding: utf-8

# WebサイトからNDVI、LSTをスクレイピングで自動ダウンロード

## URLのフォルダ名を取得するコード

## ダウンロード時に必要なユーザー名、パスワードを設定する
User_name = '〇〇'
password = '◆◆'

## 何秒ごとにデータをダウンロードするか
Download_Time = 10

# 画像出力フォルダ格納用(HDFファイル)の自動生成処理
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)


import requests
from requests.auth import HTTPDigestAuth
import time

from bs4 import BeautifulSoup

## MODISプロダクトのURLを指定

# 取得したいデータのURLに応じて変更してください。

## LST →https://e4ftl01.cr.usgs.gov/MOLT/MOD11A2.006/
## NDVI →https://e4ftl01.cr.usgs.gov/MOLT/MOD13A2.006/

# BASE_URLとurl00は揃える必要があることに注意。

BASE_URL = u"https://e4ftl01.cr.usgs.gov/MOLT/MOD11A2.006/"
EXTENSION = u"hdf"

url00 = [
    u"https://e4ftl01.cr.usgs.gov/MOLT/MOD11A2.006/",
]


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]

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(人口データの重みを加味した市町村別データの生成)]

[講義「リモートセンシングと地理情報システム(GIS)」のトップページ]
[須ア純一のページへ]

須ア純一 京都大学大学院 工学研究科社会基盤工学専攻 空間情報学講座