%global _empty_manifest_terminate_build 0 Name: python-jismesh Version: 2.1.0 Release: 1 Summary: Utilities for the Japanese regional grid system defined in Japanese Industrial Standards (JIS X 0410 地域メッシュ). License: MIT URL: https://github.com/hni14/jismesh Source0: https://mirrors.nju.edu.cn/pypi/web/packages/54/19/510a87d2245f5f15191de2f1a5e15c2a0275b45141cd941ca0ce61a0ee18/jismesh-2.1.0.tar.gz BuildArch: noarch Requires: python3-numpy Requires: python3-functools32 Requires: python3-nose %description # jismesh 地域メッシュコードに関するユーティリティです。 ## 対応地域メッシュコード - 1次(標準地域メッシュ 80km四方): 1 - 40倍(拡張統合地域メッシュ 40km四方): 40000 - 20倍(拡張統合地域メッシュ 20km四方): 20000 - 16倍(拡張統合地域メッシュ 16km四方): 16000 - 2次(標準地域メッシュ 10km四方): 2 - 8倍(拡張統合地域メッシュ 8km四方): 8000 - 5倍(統合地域メッシュ 5km四方): 5000 - 4倍(拡張統合地域メッシュ 4km四方): 4000 - 2.5倍(拡張統合地域メッシュ 2.5km四方): 2500 - 2倍(統合地域メッシュ 2km四方): 2000 - 3次(標準地域メッシュ 1km四方): 3 - 4次(分割地域メッシュ 500m四方): 4 - 5次(分割地域メッシュ 250m四方): 5 - 6次(分割地域メッシュ 125m四方): 6 ## インストール ```bash pip install jismesh ``` ## 緯度経度から地域メッシュコードを求める メッシュコードに変換する世界測地系緯度経度と変換するメッシュコードの次数を指定します。 ### 使用例 ```python import jismesh.utils as ju # 緯度経度からメッシュコードを求める。 meshcode = ju.to_meshcode(35.658581, 139.745433, 3) print(meshcode) 53393599 # pandas DataFrame中の緯度経度をメッシュコードに変換する。 import pandas as pd df = pd.DataFrame({'lat': [35.658581, 34.987574], 'lon':[139.745433, 135.759363]}) print(df) lat lon 0 35.658581 139.745433 1 34.987574 135.759363 df['meshcode'] = ju.to_meshcode(df.lat, df.lon, 3) print(df) lat lon meshcode 0 35.658581 139.745433 53393599 1 34.987574 135.759363 52353680 ``` ## 地域メッシュコードから次数を求める メッシュコードからそのメッシュコードの次数を判定します。 ### 使用例 ```python import jismesh.utils as ju # メッシュコードの次数を求める。 meshlevel = ju.to_meshlevel(53393599) print(meshlevel) 3 # pandas DataFrame中のメッシュコードを次数に変換する。 import pandas as pd df = pd.DataFrame({'meshcode': [53393599, 52353680]}) print(df) meshcode 0 53393599 1 52353680 df['level'] = ju.to_meshlevel(df.meshcode) print(df) meshcode level 0 53393599 3 1 52353680 3 ``` ## 地域メッシュコードから緯度経度を求める 求める緯度経度で表される点は、当該メッシュの基準点(南西端)から、 緯度座標上の点の位置(当該メッシュの単位経度の倍数)、経度座標上の点の位置(当該メッシュの単位緯度の倍数) を指定します。 ### 使用例 ```python import jismesh.utils as ju # 南西端の緯度経度を求める。 lat_sw, lon_sw = ju.to_meshpoint(53393599, 0, 0) print(lat_sw, lon_sw) 35.6583333333 139.7375 # 北東端の緯度経度を求める。 lat_ne, lon_ne = ju.to_meshpoint(53393599, 1, 1) print(lat_ne, lon_ne) 35.6666666667 139.75 # 中心点の緯度経度を求める。 lat_c, lon_c = ju.to_meshpoint(53393599, 0.5, 0.5) print(lat_c, lon_c) 35.6625 139.74375 # 東隣接メッシュの中心点の緯度経度を求める。 lat_east_neighbor_c, lon_east_neighbor_c = ju.to_meshpoint(53393599, 0.5, 1.5) print(lat_east_neighbor_c, lon_east_neighbor_c) 35.6625 139.75625 # pandas DataFrame中のメッシュコードを中心点緯度経度に変換する。 import pandas as pd df = pd.DataFrame({'meshcode': [53393599, 52353680]}) print(df) meshcode 0 53393599 1 52353680 df['lat'], df['lon'] = ju.to_meshpoint(df.meshcode, lat_multiplier=0.5, lon_multiplier=0.5) print(df) meshcode lat lon 0 53393599 35.6625 139.74375 1 52353680 34.9875 135.75625 ``` ## 交差する地域メッシュコードを求める ### 使用例 ```python import jismesh.utils as ju # 交差するメッシュコードを求める。 generator_intersects = ju.to_intersects(53394611, 4) for meshcode in generator_intersects: print(meshcode) 533946111 533946112 533946113 533946114 ``` ## TIPS lruキャッシュによる高速化 ```python import jismesh.utils as ju from functools import lru_cache # lruキャッシュ無効な関数の実行速度 timeit ju.to_meshcode(35.6625, 139.75625, 3) 12.6 µs ± 908 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each) # lruキャッシュ有効な関数の実行速度 cached_to_meshcode = lru_cache(10)(ju.to_meshcode) timeit cached_to_meshcode(35.6625, 139.75625, 3) 192 ns ± 3.5 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each) ``` %package -n python3-jismesh Summary: Utilities for the Japanese regional grid system defined in Japanese Industrial Standards (JIS X 0410 地域メッシュ). Provides: python-jismesh BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip %description -n python3-jismesh # jismesh 地域メッシュコードに関するユーティリティです。 ## 対応地域メッシュコード - 1次(標準地域メッシュ 80km四方): 1 - 40倍(拡張統合地域メッシュ 40km四方): 40000 - 20倍(拡張統合地域メッシュ 20km四方): 20000 - 16倍(拡張統合地域メッシュ 16km四方): 16000 - 2次(標準地域メッシュ 10km四方): 2 - 8倍(拡張統合地域メッシュ 8km四方): 8000 - 5倍(統合地域メッシュ 5km四方): 5000 - 4倍(拡張統合地域メッシュ 4km四方): 4000 - 2.5倍(拡張統合地域メッシュ 2.5km四方): 2500 - 2倍(統合地域メッシュ 2km四方): 2000 - 3次(標準地域メッシュ 1km四方): 3 - 4次(分割地域メッシュ 500m四方): 4 - 5次(分割地域メッシュ 250m四方): 5 - 6次(分割地域メッシュ 125m四方): 6 ## インストール ```bash pip install jismesh ``` ## 緯度経度から地域メッシュコードを求める メッシュコードに変換する世界測地系緯度経度と変換するメッシュコードの次数を指定します。 ### 使用例 ```python import jismesh.utils as ju # 緯度経度からメッシュコードを求める。 meshcode = ju.to_meshcode(35.658581, 139.745433, 3) print(meshcode) 53393599 # pandas DataFrame中の緯度経度をメッシュコードに変換する。 import pandas as pd df = pd.DataFrame({'lat': [35.658581, 34.987574], 'lon':[139.745433, 135.759363]}) print(df) lat lon 0 35.658581 139.745433 1 34.987574 135.759363 df['meshcode'] = ju.to_meshcode(df.lat, df.lon, 3) print(df) lat lon meshcode 0 35.658581 139.745433 53393599 1 34.987574 135.759363 52353680 ``` ## 地域メッシュコードから次数を求める メッシュコードからそのメッシュコードの次数を判定します。 ### 使用例 ```python import jismesh.utils as ju # メッシュコードの次数を求める。 meshlevel = ju.to_meshlevel(53393599) print(meshlevel) 3 # pandas DataFrame中のメッシュコードを次数に変換する。 import pandas as pd df = pd.DataFrame({'meshcode': [53393599, 52353680]}) print(df) meshcode 0 53393599 1 52353680 df['level'] = ju.to_meshlevel(df.meshcode) print(df) meshcode level 0 53393599 3 1 52353680 3 ``` ## 地域メッシュコードから緯度経度を求める 求める緯度経度で表される点は、当該メッシュの基準点(南西端)から、 緯度座標上の点の位置(当該メッシュの単位経度の倍数)、経度座標上の点の位置(当該メッシュの単位緯度の倍数) を指定します。 ### 使用例 ```python import jismesh.utils as ju # 南西端の緯度経度を求める。 lat_sw, lon_sw = ju.to_meshpoint(53393599, 0, 0) print(lat_sw, lon_sw) 35.6583333333 139.7375 # 北東端の緯度経度を求める。 lat_ne, lon_ne = ju.to_meshpoint(53393599, 1, 1) print(lat_ne, lon_ne) 35.6666666667 139.75 # 中心点の緯度経度を求める。 lat_c, lon_c = ju.to_meshpoint(53393599, 0.5, 0.5) print(lat_c, lon_c) 35.6625 139.74375 # 東隣接メッシュの中心点の緯度経度を求める。 lat_east_neighbor_c, lon_east_neighbor_c = ju.to_meshpoint(53393599, 0.5, 1.5) print(lat_east_neighbor_c, lon_east_neighbor_c) 35.6625 139.75625 # pandas DataFrame中のメッシュコードを中心点緯度経度に変換する。 import pandas as pd df = pd.DataFrame({'meshcode': [53393599, 52353680]}) print(df) meshcode 0 53393599 1 52353680 df['lat'], df['lon'] = ju.to_meshpoint(df.meshcode, lat_multiplier=0.5, lon_multiplier=0.5) print(df) meshcode lat lon 0 53393599 35.6625 139.74375 1 52353680 34.9875 135.75625 ``` ## 交差する地域メッシュコードを求める ### 使用例 ```python import jismesh.utils as ju # 交差するメッシュコードを求める。 generator_intersects = ju.to_intersects(53394611, 4) for meshcode in generator_intersects: print(meshcode) 533946111 533946112 533946113 533946114 ``` ## TIPS lruキャッシュによる高速化 ```python import jismesh.utils as ju from functools import lru_cache # lruキャッシュ無効な関数の実行速度 timeit ju.to_meshcode(35.6625, 139.75625, 3) 12.6 µs ± 908 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each) # lruキャッシュ有効な関数の実行速度 cached_to_meshcode = lru_cache(10)(ju.to_meshcode) timeit cached_to_meshcode(35.6625, 139.75625, 3) 192 ns ± 3.5 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each) ``` %package help Summary: Development documents and examples for jismesh Provides: python3-jismesh-doc %description help # jismesh 地域メッシュコードに関するユーティリティです。 ## 対応地域メッシュコード - 1次(標準地域メッシュ 80km四方): 1 - 40倍(拡張統合地域メッシュ 40km四方): 40000 - 20倍(拡張統合地域メッシュ 20km四方): 20000 - 16倍(拡張統合地域メッシュ 16km四方): 16000 - 2次(標準地域メッシュ 10km四方): 2 - 8倍(拡張統合地域メッシュ 8km四方): 8000 - 5倍(統合地域メッシュ 5km四方): 5000 - 4倍(拡張統合地域メッシュ 4km四方): 4000 - 2.5倍(拡張統合地域メッシュ 2.5km四方): 2500 - 2倍(統合地域メッシュ 2km四方): 2000 - 3次(標準地域メッシュ 1km四方): 3 - 4次(分割地域メッシュ 500m四方): 4 - 5次(分割地域メッシュ 250m四方): 5 - 6次(分割地域メッシュ 125m四方): 6 ## インストール ```bash pip install jismesh ``` ## 緯度経度から地域メッシュコードを求める メッシュコードに変換する世界測地系緯度経度と変換するメッシュコードの次数を指定します。 ### 使用例 ```python import jismesh.utils as ju # 緯度経度からメッシュコードを求める。 meshcode = ju.to_meshcode(35.658581, 139.745433, 3) print(meshcode) 53393599 # pandas DataFrame中の緯度経度をメッシュコードに変換する。 import pandas as pd df = pd.DataFrame({'lat': [35.658581, 34.987574], 'lon':[139.745433, 135.759363]}) print(df) lat lon 0 35.658581 139.745433 1 34.987574 135.759363 df['meshcode'] = ju.to_meshcode(df.lat, df.lon, 3) print(df) lat lon meshcode 0 35.658581 139.745433 53393599 1 34.987574 135.759363 52353680 ``` ## 地域メッシュコードから次数を求める メッシュコードからそのメッシュコードの次数を判定します。 ### 使用例 ```python import jismesh.utils as ju # メッシュコードの次数を求める。 meshlevel = ju.to_meshlevel(53393599) print(meshlevel) 3 # pandas DataFrame中のメッシュコードを次数に変換する。 import pandas as pd df = pd.DataFrame({'meshcode': [53393599, 52353680]}) print(df) meshcode 0 53393599 1 52353680 df['level'] = ju.to_meshlevel(df.meshcode) print(df) meshcode level 0 53393599 3 1 52353680 3 ``` ## 地域メッシュコードから緯度経度を求める 求める緯度経度で表される点は、当該メッシュの基準点(南西端)から、 緯度座標上の点の位置(当該メッシュの単位経度の倍数)、経度座標上の点の位置(当該メッシュの単位緯度の倍数) を指定します。 ### 使用例 ```python import jismesh.utils as ju # 南西端の緯度経度を求める。 lat_sw, lon_sw = ju.to_meshpoint(53393599, 0, 0) print(lat_sw, lon_sw) 35.6583333333 139.7375 # 北東端の緯度経度を求める。 lat_ne, lon_ne = ju.to_meshpoint(53393599, 1, 1) print(lat_ne, lon_ne) 35.6666666667 139.75 # 中心点の緯度経度を求める。 lat_c, lon_c = ju.to_meshpoint(53393599, 0.5, 0.5) print(lat_c, lon_c) 35.6625 139.74375 # 東隣接メッシュの中心点の緯度経度を求める。 lat_east_neighbor_c, lon_east_neighbor_c = ju.to_meshpoint(53393599, 0.5, 1.5) print(lat_east_neighbor_c, lon_east_neighbor_c) 35.6625 139.75625 # pandas DataFrame中のメッシュコードを中心点緯度経度に変換する。 import pandas as pd df = pd.DataFrame({'meshcode': [53393599, 52353680]}) print(df) meshcode 0 53393599 1 52353680 df['lat'], df['lon'] = ju.to_meshpoint(df.meshcode, lat_multiplier=0.5, lon_multiplier=0.5) print(df) meshcode lat lon 0 53393599 35.6625 139.74375 1 52353680 34.9875 135.75625 ``` ## 交差する地域メッシュコードを求める ### 使用例 ```python import jismesh.utils as ju # 交差するメッシュコードを求める。 generator_intersects = ju.to_intersects(53394611, 4) for meshcode in generator_intersects: print(meshcode) 533946111 533946112 533946113 533946114 ``` ## TIPS lruキャッシュによる高速化 ```python import jismesh.utils as ju from functools import lru_cache # lruキャッシュ無効な関数の実行速度 timeit ju.to_meshcode(35.6625, 139.75625, 3) 12.6 µs ± 908 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each) # lruキャッシュ有効な関数の実行速度 cached_to_meshcode = lru_cache(10)(ju.to_meshcode) timeit cached_to_meshcode(35.6625, 139.75625, 3) 192 ns ± 3.5 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each) ``` %prep %autosetup -n jismesh-2.1.0 %build %py3_build %install %py3_install install -d -m755 %{buildroot}/%{_pkgdocdir} if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi pushd %{buildroot} if [ -d usr/lib ]; then find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/lib64 ]; then find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/bin ]; then find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/sbin ]; then find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst fi touch doclist.lst if [ -d usr/share/man ]; then find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst fi popd mv %{buildroot}/filelist.lst . mv %{buildroot}/doclist.lst . %files -n python3-jismesh -f filelist.lst %dir %{python3_sitelib}/* %files help -f doclist.lst %{_docdir}/* %changelog * Tue Apr 11 2023 Python_Bot - 2.1.0-1 - Package Spec generated