Vous voudrez peut-être utiliser la géométrie, qui est les données nationales sur les limites de la ville / quartier / ville / village ou les données sur les limites de la préfecture, mais il peut être difficile de l'obtenir, alors prenez note.
Par exemple, les National Municipal Boundary Data fournis par ESRI Japan sont faciles à utiliser, mais ArcGIS Les conditions d'utilisation sont qu'il ne peut être utilisé qu'avec des produits / arcgis /).
Par conséquent, cette fois, en utilisant les Informations numériques sur les terres nationales (données de la zone administrative) comme source, la fonction geoPandas sera utilisée pour la géométrie. J'ai étudié comment intégrer les informations pour créer des données sur les limites des villes / quartiers / villes / villages.
--Il est nécessaire de vérifier et de respecter les Conditions d'utilisation pour les informations numériques foncières nationales. ―― Vous pouvez l'utiliser librement, y compris à des fins commerciales, mais vous devez spécifier la source. ―― Vous pouvez éditer et traiter, mais vous devez l'écrire.
--Linux (en utilisant le docker, image de base: Ubuntu18.04)
-Téléchargez les données du "National and World Survey System" à partir de National Land Numerical Information et utilisez le chemin approprié. Décompressez et décompressez --Nom de fichier tel que "N03-190101_GML.zip" ――Notez que les données pour H31 sont proches de 400 Mo, ce qui est assez lourd (augmente-t-il d'année en année?)
import geopandas as gpd
gdf = gpd.read_file("/path/to/N03-19_190101.shp") #Spécifiez le fichier shp du chemin extrait
display(gdf) #Vérifiez grossièrement le contenu
N03_001 N03_002 N03_003 N03_004 N03_007 geometry
0 Bureau de promotion générale de Hokkaido Okhotsk Aucun Kitami City 01208 POLYGON((144.08144 44.12506, 144.08143 44.125...
1 Hokkaido Okhotsk General Promotion Bureau Aucun Kitami City 01208 POLYGON((143.78333 44.18453, 143.78281 44.183...
2 Bureau de promotion générale de Hokkaido Okhotsk Aucun Amisato City 01211 POLYGONE((144.29495 44.00826, 144.29501 44.008...
3 Bureau de promotion générale de Hokkaido Okhotsk Aucun Amisato City 01211 POLYGONE((144.29602 44.01118, 144.29572 44.010...
4 Hokkaido Okhotsk Bureau de promotion générale Aucun Amisato City 01211 POLYGONE((144.29266 44.01945, 144.29295 44.018...
... ... ... ... ... ... ...
117575 Préfecture d'Okinawa Aucun 47382 POLYGON, Yonakuni-cho, Yaeyama-gun((122.98986 24.47191, 122.98999 24.471...
117576 Préfecture d'Okinawa Aucun 47382 POLYGON, Yonakuni-cho, Yaeyama-gun((122.96591 24.47171, 122.96587 24.471...
117577 Préfecture d'Okinawa Aucun 47382 POLYGONE, Yonakuni-cho, Yaeyama-gun((122.99042 24.47248, 122.99036 24.472...
117578 Préfecture d'Okinawa Aucun 47382 POLYGON, Yonakuni-cho, Yaeyama-gun((122.99804 24.47512, 122.99820 24.475...
117579 Okinawa Prefecture Aucun Aucun Affiliation indécis terre Aucun POLYGONE((127.84164 26.43531, 127.84167 26.435...
117580 rows × 6 columns
N03_004
, mais comme il existe de nombreux noms susceptibles d'être couverts, tels que" Kita-ku "et" Chuo-ku ", nous utiliserons le code de zone administrative de N03_007
.
--Si vous vérifiez les spécifications (défilement vers le bas et partie "informations sur les attributs") dans https://nlftp.mlit.go.jp/ksj/gml/datalist/KsjTmplt-N03-v2_2.html, le code de zone administrative Semble correspondre à "nom de la préfecture + nom de la ville / quartier / ville / village", donc cela devrait probablement être OK (je suis désolé si c'est différent)gdf_dissolved = gdf.dropna(subset=['N03_007']).dissolve(by='N03_007')
display(gdf_dissolved)
geometry N03_001 N03_002 N03_003 N03_004
N03_007
01101 POLYGON ((141.34233 43.06682, 141.34285 43.066...Bureau de promotion de Hokkaido Ishikari Chuo-ku, Sapporo
01102 POLYGON ((141.40839 43.18395, 141.40833 43.183...Bureau de promotion de Hokkaido Ishikari Kita-ku, Sapporo
01103 POLYGON ((141.44707 43.15616, 141.44694 43.155...Bureau de promotion de Hokkaido Ishikari Higashi-ku, Sapporo
01104 POLYGON ((141.46244 43.10010, 141.46265 43.100...Bureau de promotion de Hokkaido Ishikari Shiraishi-ku, Sapporo
01105 POLYGON ((141.38463 43.04670, 141.38479 43.046...Hokkaido Ishikari Promotion Bureau Toyohei Ward, Sapporo City
... ... ... ... ... ...
47361 MULTIPOLYGON (((126.82034 26.26934, 126.82043 ...Préfecture d'Okinawa Aucun Kumejima-cho, Shimajiri-gun
47362 MULTIPOLYGON (((127.76445 26.12312, 127.76447 ...Préfecture d'Okinawa Aucun Yaese-cho, Shimajiri-gun
47375 MULTIPOLYGON (((124.72860 24.65694, 124.72852 ...Préfecture d'Okinawa Aucun Village de Tarama, comté de Miyako
47381 MULTIPOLYGON (((123.75465 24.06330, 123.75463 ...Préfecture d'Okinawa Aucun Taketomi-cho, Yaeyama-gun
47382 MULTIPOLYGON (((123.01358 24.43628, 123.01352 ...Préfecture d'Okinawa Aucun Yonakuni-cho, Yaeyama-gun
1902 rows × 5 columns
Il se résume en un tel nombre
Supplément:
null
est supprimé ici.Ici, j'ai parcouru les limites de la ville, du quartier, de la ville et du village, mais si vous êtes dans la limite de la préfecture, vous pouvez le faire comme gdf.dissolve (by =" N03_001 ")
→ Cela a pris 12 minutes dans mon environnement. .. ..
fichier shp:
gdf_dissolved.to_file("/path/to/<nom de fichier>.shp", encoding='utf-8')
geojson:
#le pilote doit être spécifié
gdf_dissolved.to_file("/path/to/<nom de fichier>.geojson", driver="GeoJSON", encoding='utf-8')
Y a-t-il beaucoup de points pour les données de limite de ville / quartier / ville / village créées ci-dessus? La taille des données est d'un ordre de grandeur plus grande que les données des limites municipales fournies par ESRI Japon (un peu plus de 6 Mo avec compression zip). Par conséquent, réduisez la taille des données en les éclaircissant si nécessaire (simplifier).
** La zone autour de la limite peut être un peu cliquetante **, alors faites attention à cela.
--Pour la GeoSeries
méthode simplifiée à utiliser, les arguments tolérance: nombre (obligatoire) ʻet
préserver_topologie: bool (facultatif, Vrai par défaut) ) `Précisez
Par exemple
gdf_simple = gdf_dissolved.copy()
gdf_simple['geometry'] = gdf_simple['geometry'].simplify(tolerance=0.00085)
Si vous enregistrez le gdf_simple
ainsi créé en tant que fichier shp, il fera environ 12 Mo.
Celui qui vient d'être dissous faisait plus de 200 Mo, donc il peut être assez léger.
(C'était assez difficile d'ajuster la valeur de tolérance car je ne savais pas quoi faire ...)
Si vous visualisez ce que vous avez fait avec les paramètres ci-dessus sur la carte,
Se sentir comme. Cela dépend de la valeur de simplifier, mais à première vue, cela ressemble à ça.
Une fois étendu,
Vous pouvez voir que la zone autour de la frontière devient un peu suspecte autant que simple → Il semble nécessaire d'ajuster la tolérance et de préserver la topologie de manière appropriée en fonction de l'objectif à ce moment-là.
Références telles que méthodes:
Données SIG gratuites:
Recommended Posts