投稿

8月, 2023の投稿を表示しています

国土数値情報の河川データ取得を効率化 National Land Numerical Information with Python

イメージ
   久しぶりに国土数値情報の河川データに戻り、データ取得の効率化を図ります。  これまでは国土数値情報の河川データをLocalPCにダウンロードして解凍したデータをGoogleDriveにUploadするというまどろっこしい操作をしていましたが、APIやWebScreipingを学習する中で、Webから直接zipFileを取得してPython上で解凍し、必要なデータを取得することができるということがわかってきたので、今後、使用頻度が高いと思われる河川データをWeb上で直接取得する方法を検討しました。  ChatGPT先生に相談しながら、まずは国土数値情報の河川データを取得するコードを作成しました。  作成したコードは以下のとおりです。  最初、「国土数値情報の河川データから河川データのshpファイルを取得」という指示をChatGPT先生に与えたところ、冒頭の図にあるような流路(LineString)ではなく、接続点=Node情報(Point)を取得していました。これは各県別の河川データのzipFileの中に2種類のshpFileがあり、1つはNode情報、1つはFlowPath情報になっているためでした。   shpFileNameを指定せずにデータを取得した場合に、なぜNode情報を見に行くのかまでは解明しておりません。  ですので、河川データを一度GoogleColabのドライブにDownLoadして、解凍し、所定のファイルを読み込んだ後、gdf_shikoku_riverに追加していくという流れでコードを作っています。なお、以下のコードではFlowPath情報が含まれているFileNameのTailが'-g_Stream.shp'を指定して取得しています。 import urllib.request import zipfile import geopandas as gpd def download_map_data ( url , zip_file_name , shp_file_name ) : #url = 'https://nlftp.mlit.go.jp/ksj/gml/data/W05/W05-06/W05-06_36_GML.zip' #zip_file_path = 'W05-06_36_G

都道府県別の2つの離婚率(=離婚数÷婚姻数、人口千人あたり)で整理 総務省統計局データをPythonで加工 e-Stat with Python(6)

イメージ
   婚姻と離婚は当然ながら関係性があると思います。「両者の関係に県民性があるのか?」という点についてe-StatDataを活用して垣間見てみようと考えました。  CommonのFunctionはこれまでどおりですので、こちらをご覧ください。→https://shikuuk.blogspot.com/2023/08/e-stat-with-python4-python.html  まず、以下のコードでe-StatからMarriage関係のData(statsDataId = "0003411835")をGetします。 ################################ # e-StatAPIからRequiredDataをGet # 婚姻数・婚姻率データをget ################################ # e-StatAPIのDataBaseが格納されているURL API_URL = "http://api.e-stat.go.jp/rest/3.0/app/json/getStatsData" # e-StatDataID(婚姻数・婚姻率DataのID=0003411835) statsDataId = "0003411835" # 対象期間 cdTime = "2021000000" # Processing Pandas data and change the column name column_rename = {     '@tab' : 'DataType' ,     '@area' : '都道府県コード' ,     '@time' : '対象年' ,     '@unit' : '単位' ,     '$' : '婚姻数' } tree = "['GET_STATS_DATA']['STATISTICAL_DATA']['DATA_INF']['VALUE']" df = fn_g

都道府県別の婚姻数・婚姻率を評価、そして、相関分析 総務省統計局データをPythonで加工 e-Stat with Python(5)

イメージ
 e-Statで統計データを調べてみると、新しい発見がたくさんあって、とても興味深いと思います。。次は、出生数・出生率と関係がありそうな婚姻数・婚姻率を都道府県別に整理してみます。  婚姻数・婚姻率のStatsDataIDは’0003411835’でございます。Data構造は出生数・出生率と同じように、まず、都道府県別の出生数がRowData(@tab=10270)で並び、そのあとに都道府県別の出生率がRowData(@tab=10280)として続きます。e-Stat特有のDataStructureかもしれません。  今回、都道府県別の地図表示に関するコードは前回までのコードと類似しているので省略します。  都道府県別の婚姻数を図化すると次のようになります。東京都だけがBlue系の色彩でGreen系もYellow系もほぼ存在せず、大部分の道府県が赤色系暖色で塗られています。婚姻数でみると、人口がダントツに多い東京都がどうしても抜きんでる結果になります。  ではでは、人口千人当たりの婚姻率で評価してみます。  おっと、予想に反して東京都の婚姻率は高いです。その他で見ると、愛知県、大阪府、福岡県など大都市圏が多めですが、沖縄県もかなり高そうな色合いです。首都圏や京都や広島なども高めで、ひときわ低いのは秋田県でしょうか?  ちょっと興味を魅かれたので、出生率と婚姻率の相関関係を分析することにしました。  あらためて、出生率と婚姻率のデータをe-Statからいただきます。  きちんと書いていませんでしたが、取得しているデータは2021年度のデータになります。 ################## # e-Stat共通設定 # ################## # e-StatAPIのDataBaseが格納されているURL API_URL = "http://api.e-stat.go.jp/rest/3.0/app/json/getStatsData" # 対象期間 cdTime = "2021000000" ###################################################### # e-StatAPIから出生率(e-StatDataID=0003411597)をGet # #########

都道府県別の出生数・出生率を評価 総務省統計局データをPythonで加工 e-Stat with Python(4)

イメージ
 このグラフは都道府県別の「人口千人あたりの出生率」を地図上に表示したものです。  沖縄が突出しています。全体的に見ると北日本は低い傾向、大都市圏や中国・九州地方は高めです。  Next, I will show the plot of the map of Japanese prefectures by each prefecture birth number and birth rate per one thouzand peole.  e-Statの「Search for field(分野から探す)」のfrom population and household(人口・世帯) 'Population move survey'(人口動態調査)をselectし、birth(出生)のyearlyのDataBaseから「each prefecture yearly birth number and birth rate(都道府県別にみた年次別出生数・出生率)のDataBaseにaccessします。statsDataIdは0003411597です。  the libraries need to be import are below. # Import the required libralies ! pip install geopandas import geopandas as gpd import pathlib import requests import pandas as pd import matplotlib.pyplot as plt ! pip install mapclassify import mapclassify #matplotlibで日本語を表示するためのおまじない ! pip install japanize_matplotlib import japanize_matplotlib  In this time, three typical function was defined. Please see below code.  The first function called 'fn_create_jp_pref_map' . This function icreate the