Security News
The Risks of Misguided Research in Supply Chain Security
Snyk's use of malicious npm packages for research raises ethical concerns, highlighting risks in public deployment, data exfiltration, and unauthorized testing.
Utilities for the Japanese regional grid system defined in Japanese Industrial Standards (JIS X 0410 地域メッシュ).
地域メッシュコードに関するユーティリティです。
pip install jismesh
メッシュコードに変換する世界測地系緯度経度と変換するメッシュコードの次数を指定します。
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
メッシュコードからそのメッシュコードの次数を判定します。
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
求める緯度経度で表される点は、当該メッシュの基準点(南西端)から、 緯度座標上の点の位置(当該メッシュの単位経度の倍数)、経度座標上の点の位置(当該メッシュの単位緯度の倍数) を指定します。
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
import jismesh.utils as ju
# 交差するメッシュコードを求める。
generator_intersects = ju.to_intersects(53394611, 4)
for meshcode in generator_intersects:
print(meshcode)
533946111
533946112
533946113
533946114
lruキャッシュによる高速化
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)
FAQs
Utilities for the Japanese regional grid system defined in Japanese Industrial Standards (JIS X 0410 地域メッシュ).
We found that jismesh demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Snyk's use of malicious npm packages for research raises ethical concerns, highlighting risks in public deployment, data exfiltration, and unauthorized testing.
Research
Security News
Socket researchers found several malicious npm packages typosquatting Chalk and Chokidar, targeting Node.js developers with kill switches and data theft.
Security News
pnpm 10 blocks lifecycle scripts by default to improve security, addressing supply chain attack risks but sparking debate over compatibility and workflow changes.