The same data can be downloaded in different formats with the GIS data used in the Japanese government statistics "Statistics viewed on a map (statistical GIS). I tried to find out what is different.
shp is an old binary format, and GML is a recently developed XML format. When reading with python geopandas
(internally fiona
), use shp. It seems that GDAL
used internally by fiona
does not fully support the required XML specification.
After that, due to the difference in projection, when I looked at the definition of proj4
, it was like this ([Explanation] of geopandas
(http://geopandas.org/projections.html)). It is taken out in Kobe city, and the plane orthogonal coordinate system should be a little different depending on the area.
Name | proj4 string |
---|---|
Japan Geodetic System Latitude / Longitude | +ellps=bessel +no_defs +proj=longlat |
World Geodetic Latitude / Longitude | +ellps=GRS80 +no_defs +proj=longlat |
Japan geodetic system plane orthogonal coordinate system | +lon_0=134.3333333333333 +y_0=0 +lat_0=36 +ellps=bessel +no_defs +units=m +proj=tmerc +x_0=0 +k=0.9999 |
World geodetic system Plane orthogonal coordinate system | +lon_0=134.3333333333333 +y_0=0 +lat_0=36 +ellps=GRS80 +no_defs +units=m +proj=tmerc +x_0=0 +k=0.9999 |
The plane orthogonal coordinate system is a number that looks like a plane like the ground. ʻUnits is now
m`. Does that mean that the Japanese geodetic system and the world geodetic system have different elliptical spheres in the plane orthogonal coordinate system? What is called the Japanese geodetic system is the Bessel ellipsoid, that is, the former Japanese geodetic system. Since there are a lot of WGS84 data nowadays, it seems better to use GRS80 of "World Geodetic System" which is 2000 of Japan Geodetic System.
If you want to do various calculations, you should download "World Geodetic System Latitude / Longitude", calculate it, and convert it to the plane orthogonal coordinate system when you make the final figure. You can do it in one shot with to_crs ()
.
data.to_crs("+lon_0=134.3333333333333 +y_0=0 +lat_0=36 +ellps=GRS80 +no_defs +units=m +proj=tmerc +x_0=0 +k=0.9999").plot()
When allocating values using area, do I have to calculate in the plane orthogonal coordinate system?