- Aki-Hiro Sato, Shoki Nishimura, Naoki Makita, Tsuyoshi Namiki, and Hiroe Tsubaki, World Grid Square Statistics and their application to data analytics,tham gia Hội thảo chung UNECE / UN-GGIM về việc kết hợp các tiêu chuẩn thống kê vào không gian địa lý tại Stockholm, Thụy Điển, từ ngày 6 đến 8 tháng 11 năm 2017.
- Aki-Hiro Sato, Shoki Nishimura, Hiroe Tsubaki, “World grid square codes: Definition and an example of world grid square data”, 2017 Hội nghị Quốc tế IEEE về Dữ liệu Lớn (Big Data), pp. 4238–4247 (2017), DOI: 10.1109/BigData.2017.8258450
- Aki-Hiro Sato, Shoki Nishimura, Tsuyoshi Namiki, Naoki Makita, Hiroe Tsubaki, World Grid Square Data Reference Framework and its Potential Applications, Conference: 2018 IEEE 42nd Annual Computer Software and Applications Conference (COMPSAC), pp. 398-409 (2018), DOI: 10.1109/COMPSAC.2018.00062
Hình 1: Định nghĩa mã lưới vuông trên thế giới
Năm 1960, Cục thống kê Nhật Bản bắt đầu nghiên cứu định nghĩa các ô lưới để tính toán các số liệu thống kê không gian thông qua các số liệu từ bộ và ngành của chính phủ Nhật Bản. Trong những năm 1970, họ đề xuất các mã lưới vuông được tính dựa trên vị trí địa lý (vĩ độ và kinh độ). Năm 1973, “Biểu đồ dạng lưới tiêu chuẩn và mã lưới được sử dụng cho Thống kê” số 143 của Cơ quan Quản lý Hành chính (AMA) đã xác định thứ bậc các ô vuông bao phủ toàn bộ vùng đất của Nhật Bản và năm 1974 định nghĩa này được thông qua bởi Ủy ban Tiêu chuẩn Công nghiệp Nhật Bản . Thông qua định nghĩa này, các bộ ngành và chính phủ Nhật Bản và các công ty Nhật Bản trong các ngành công nghiệp đã tạo ra số liệu thống kê lưới sử dụng với mục đích lập kế hoạch, đánh giá và hoạch định các chính sách.
Ở đây, chúng tôi giải thích làm thế nào để xây dựng một hệ thống mã vạch trên lưới thế giới bằng cách thêm hai chữ số vào mã lưới vuông của Nhật Bản (JIS X0410: 2002). Hệ thống lưới trên lưới thế giới có khả năng tương thích cao với hệ thống mã lưới vuông của Nhật Bản (JIS X0410). Hệ thống mã lưới Grid Square bao gồm sáu cấp độ phân giải không gian và cho phép xác định từng ô lưới bằng các chữ số riêng (mã lưới vuông trên thế giới) và JIS X0410. Các ô lưới vuông riêng biệt, không có hình vuông nào chồng lên hình vuông nào, và mã của mỗi hình vuông được tính từ thông tin địa lý (vĩ độ và kinh độ).
Tám khu vực cách nhau bởi vĩ độ và kinh độ được thể hiện như hình 1.
- 1. Variable $x=0$ if latitude is positive. Otherwise $x=1$.
- 2. Varialbe $y=0$ if longitude is positive. Otherwise $y=1$.
- 3. Variable $z=0$ for $|\mbox{longitude}|<100^{\circ}$. Otherwise $z=1$.
Khi đặt xyz , biểu thức o của mã lưới 0 được tính bằng công thức:
\begin{equation}
o=2^2 x + 2 y + z + 1.
\end{equation}
Ngoài ra, xyz trong biểu thức o của mã lưới 0 (từ 1 đến 8) được tính như sau:
\begin{eqnarray}
z &=& (o – 1) \mbox{ mod } 2, \\
y &=& ((o – z – 1) \div 2) \mbox{ mod } 2, \\
x &=& (o – 2 \times y – z – 1) \div 4,
\end{eqnarray}
Từ đó, ta có công thức tìm giá trị số nguyên của mã lưới tại mỗi cấp của lưới được mở rộng như sau.
Mã lưới thứ 1
\begin{equation}
\mbox{grid square code} =
\left\{
\begin{array}{ll}
o00p0u & (p < 10, u < 10) \\
o0p0u & (10 \leq p < 100, u < 10) \\
op0u & (p \geq 100, u < 10) \\
o00pu & (p < 10, u \geq 10) \\
o0pu & (10 \leq p < 100, u \geq 10) \\
opu & (p \geq 100, u \geq 10) \\
\end{array}
\right.,
\end{equation}
Mã lưới thứ 2
\begin{equation}
\mbox{grid square code} =
\left\{
\begin{array}{ll}
o00p0uqv & (p < 10, u < 10) \\
o0p0uqv & (10 \leq p < 100, u < 10) \\
op0uqv & (p \geq 100, u < 10) \\
o00puqv & (p < 10, u \geq 10) \\
o0puqv & (10 \leq p < 100, u \geq 10) \\
opuqv & (p \geq 100, u \geq 10) \\
\end{array}
\right.,
\end{equation}
Mã lưới thứ 3
\begin{equation}
\mbox{grid square code} =
\left\{
\begin{array}{ll}
o00p0uqvrw & (p < 10, u < 10) \\
o0p0uqvrw & (10 \leq p < 100, u < 10) \\
op0uqvrw & (p \geq 100, u < 10) \\
o00puqvrw & (p < 10, u \geq 10) \\
o0puqvrw & (10 \leq p < 100, u \geq 10) \\
opuqvrw & (p \geq 100, u \geq 10) \\
\end{array}
\right.,
\end{equation}
Mã lưới thứ 4
\begin{equation}
\mbox{grid square code} =
\left\{
\begin{array}{ll}
o00p0uqvrws_2 & (p < 10, u < 10) \\
o0p0uqvrws_2 & (10 \leq p < 100, u < 10) \\
op0uqvrws_2 & (p \geq 100, u < 10) \\
o00puqvrws_2 & (p < 10, u \geq 10) \\
o0puqvrws_2 & (10 \leq p < 100, u \geq 10) \\
opuqvrws_2 & (p \geq 100, u \geq 10) \\
\end{array}
\right.,
\end{equation}
Mã lưới thứ 5
\begin{equation}
\mbox{grid square code} =
\left\{
\begin{array}{ll}
o00p0uqvrws_2s_4 & (p < 10, u < 10) \\
o0p0uqvrws_2s_4 & (10 \leq p < 100, u < 10) \\
op0uqvrws_2s_4 & (p \geq 100, u < 10) \\
o00puqvrws_2s_4 & (p < 10, u \geq 10) \\
o0puqvrws_2s_4 & (10 \leq p < 100, u \geq 10) \\
opuqvrws_2s_4 & (p \geq 100, u \geq 10) \\
\end{array}
\right.,
\end{equation}
Mã lưới thứ 6
\begin{equation}
\mbox{grid square code} =
\left\{
\begin{array}{ll}
o00p0uqvrws_2s_4s_8 & (p < 10, u < 10) \\
o0p0uqvrws_2s_4s_8 & (10 \leq p < 100, u < 10) \\
op0uqvrws_2s_4s_8 & (p \geq 100, u < 10) \\
o00puqvrws_2s_4s_8 & (p < 10, u \geq 10) \\
o0puqvrws_2s_4s_8 & (10 \leq p < 100, u \geq 10) \\
opuqvrws_2s_4s_8 & (p \geq 100, u \geq 10) \\
\end{array}
\right.,
\end{equation}
Ở đây, mỗi giá trị số nguyên được tính như sau:
\begin{equation}
\left\{
\begin{array}{l}
p: = \lfloor (1-2x)\mbox{latitude} \times 60 \div 40 \rfloor \quad (\mbox{$p$ is two or three digits}),
\\
a := \bigl\{(1-2x)\mbox{latitude} \times 60 \div 40 – p\bigr\} \times 40, \\
q := \lfloor a \div 5 \rfloor \quad (\mbox{$q$ is one digit}),
\\
b := (a \div 5 – q) \times 5,
\\
r := \lfloor b \times 60 \div 30 \rfloor \quad (\mbox{$r$ is one digit}),
\\
c := (b \times 60 \div 30 – r) \times 30,
\\
s_{2u} := \lfloor c/15 \rfloor \quad (\mbox{$s_{2u}$ is one digit}),
\\
d := (c/15-s_{2u}) \times 15,
\\
s_{4u} := \lfloor d/7.5 \rfloor \quad (\mbox{$s_{4u}$ is one digit}),
\\
e := (d/7.5-s_{4u}) \times 7.5,
\\
s_{8u} := \lfloor e/3.75 \rfloor \quad (\mbox{$s_{8u}$ is one digit}),
\\
u := \lfloor (1-2y)\mbox{longitude} – 100z \rfloor \quad (\mbox{$u$ is one or two digits}),
\\
f := (1-2y)\mbox{longitude} – 100z – u,
\\
v := \lfloor f \times 60 \div 7.5 \rfloor \quad (\mbox{$v$ is one digit}),
\\
g := (f \times 60 \div 7.5 – v) \times 7.5,
\\
w := \lfloor g \times 60 \div 45 \rfloor \quad (\mbox{$w$ is one digit}),
\\
h := (g \times 60 \div 45 – w) \times 45,
\\
s_{2l} := \lfloor h/22.5 \rfloor \quad (\mbox{$s_{2l}$ is one digit}),
\\
i := (h/22.5-s_{2l}) \times 22.5,
\\
s_{4l} := \lfloor i/11.25 \rfloor \quad (\mbox{$s_{4l}$ is one digit}),
\\
j := (i/11.25-s_{4l}) \times 11.25,
\\
s_{8l} := \lfloor j/5.625 \rfloor \quad (\mbox{$s_{8l}$ is one digit}),
\\
s_2 := s_{2u} \times 2+s_{2l}+1 \quad (\mbox{$s_{2}$ is one digit}),
\\
s_4 := s_{4u} \times 2+s_{4l}+1 \quad (\mbox{$s_{4}$ is one digit}),
\\
s_8 := s_{8u} \times 2+s_{8l}+1 \quad (\mbox{$s_{8}$ is one digit})
\end{array}
\right..
\end{equation}
Ngược lại, khi mã lưới thứ 1 opu (o (1 chữ số), p (3 chữ số), u (2 chữ số)) được đưa ra, vĩ độ và kinh độ đại diện cho vị trí cuối phía tây bắc của mã lưới thứ 1 có thể được tính như sau:
\begin{eqnarray}
\mbox{latitude} &=& (1-2x) \bigl\{(p-x+1) \times 40 \ \div 60 \bigr\}, \\
\mbox{longitude} &=& (1-2y) (100 \times z + u+y ).
\end{eqnarray}
Trong trường hợp mã lưới thứ 2 opuqv (o (1 chữ số), p (3 chữ số), u (2 chữ số), q (1 chữ số), v (1 chữ số)) , vị trí của vĩ độ latitude và kinh độ longitude cuối phía tây bắc của lưới thứ 2 có thể được tính bằng:
\begin{eqnarray}
\nonumber
\mbox{latitude} &=& (1-2x) \bigl\{p \times 40 \ \div 60 \\
&+& (q-x+1) \times 5 \div 60 \bigr\}, \\
\label{eq:expression2:latitude-mesh-2}
\mbox{longitude} &=& (1-2y) \bigl(100 \times z + u \\
\nonumber
&+& (v+y) \times 7.5 \div 60 \bigr).
\label{eq:expression2:longitude-mesh-2}
\end{eqnarray}
Trong trường hợp mã lưới thứ 3 opuqvrw (o (1 chữ số), p (3 chữ số), u (2 chữ số), q (1 chữ số), v (1 chữ số), r (1 chữ số)) , vị trí của vĩ độ latitude và kinh độ longitude cuối phía tây bắc của lưới thứ 3 có thể được tính bằng:
\begin{eqnarray}
\nonumber
\mbox{latitude} &=& (1-2x) \bigl(p \times 40 \ \div 60 + q \times 5 \div
60 \\
&+& (r-x+1) \times 30 \div 3600 \bigr), \\
\label{eq:expression2:latitude-mesh-3}
\nonumber
\mbox{longitude} &=& (1-2y) \bigl(100 \times z + u + v \times 7.5 \div 60
\\
&+& (w+y) \times 45 \div 3600 \bigr).
\label{eq:expression2:longitude-mesh-3}
\end{eqnarray}
Trong trường hợp mã lưới thứ 4 opuqvrws2 (o (1 chữ số), p (3 chữ số), u (2 chữ số), q (1 chữ số), v (1 chữ số), r (1 chữ số), s2 (1 chữ số)), vị trí của vĩ độ latitude và kinh độ longitude cuối phía tây bắc của lưới thứ 4 có thể được tính bằng:
\begin{eqnarray}
\nonumber
\mbox{latitude} &=& (1-2x) \bigl(p \times 40 \ \div 60 + q \times 5 \div
60 \\
\nonumber
&+& (r-x+1) \times 30 \div 3600 \\
&+& \lfloor (s_2-1)/2 \rfloor + x-1) \times 15 \div 3600 \bigr), \\
\label{eq:expression2:latitude-mesh-4}
\nonumber
\mbox{longitude} &=& (1-2y) \bigl(100 \times z + u + v \times 7.5 \div 60
\\
\nonumber
&+& (w+y) \times 45 \div 3600 \\
&+& (((s_2-1) \mbox{ mod } 2) – y) \times 22.5 \div 3600 \bigr).
\label{eq:expression2:longitude-mesh-4}
\end{eqnarray}
Trong trường hợp mã lưới thứ 5 opuqvrws2s4 (o (1 chữ số), p (3 chữ số), u (2 chữ số), q (1 chữ số), v (1 chữ số), r (1 chữ số), s2 (1 chữ số),s4 (1 chữ số)), vị trí của vĩ độ latitude và kinh độ longitude cuối phía tây bắc của lưới thứ 5 có thể được tính bằng:
\begin{eqnarray}
\nonumber
\mbox{latitude} &=& (1-2x) \bigl(p \times 40 \ \div 60 + q \times 5 \div
60 \\
\nonumber
&+& (r-x+1) \times 30 \div 3600 \\
\nonumber
&+& \lfloor (s_2-1)/2 \rfloor + x-1)) \times 15 \div 3600 \\
&+& \lfloor (s_4-1)/2 \rfloor + x-1)) \times 7.5 \div 3600\bigr), \\
\label{eq:expression2:latitude-mesh-5}
\nonumber
\mbox{longitude} &=& (1-2y) \bigl(100 \times z + u + v \times 7.5 \div 60
\\
\nonumber
&+& (w+y) \times 45 \div 3600 \\
\nonumber
&+& (((s_2-1) \mbox{ mod } 2) – y) \times 22.5 \div 3600 \\
&+& (((s_4-1) \mbox{ mod } 2) – y) \times 11.25 \div 3600 \bigr).
\label{eq:expression2:longitude-mesh-5}
\end{eqnarray}
Trong trường hợp mã lưới thứ 6 opuqvrws2s4s8 (o (1 chữ số), p (3 chữ số), u (2 chữ số), q (1 chữ số), v (1 chữ số), r (1 chữ số), s2 (1 chữ số),s4 (1 chữ số),s8 (1 chữ số)), vị trí của vĩ độ latitude và kinh độ longitude cuối phía tây bắc của lưới thứ 6 có thể được tính bằng:
\begin{eqnarray}
\nonumber
\mbox{latitude} &=& (1-2x) \bigl(p \times 40 \ \div 60 + q \times 5 \div
60 \\
\nonumber
&+& (r-x+1) \times 30 \div 3600 \\
\nonumber
&+& \lfloor (s_2-1)/2 \rfloor + x-1)) \times 15 \div 3600 \\
\nonumber
&+& \lfloor (s_4-1)/2 \rfloor + x-1)) \times 7.5 \div 3600 \\
&+& \lfloor (s_8-1)/2 \rfloor + x-1)) \times 3.75 \div 3600 \bigr), \\
\label{eq:expression2:latitude-mesh-6}
\nonumber
\mbox{longitude} &=& (1-2y) \bigl(100 \times z + u + v \times 7.5 \div 60
\\
\nonumber
&+& (w+y) \times 45 \div 3600 \\
\nonumber
&+& (((s_2-1) \mbox{ mod } 2) – y) \times 22.5 \div 3600 \\
\nonumber
&+& (((s_4-1) \mbox{ mod } 2) – y) \times 11.25 \div 3600 \\
&+& (((s_8-1) \mbox{ mod } 2) – y) \times 5.625 \div 3600 \bigr).
\label{eq:expression2:longitude-mesh-6}
\end{eqnarray}
Định nghĩa mã lưới ô vuông thứ 0
$x$:vĩ độ
(latitude) |
$y$:kinh độ
(longitude) |
$z$:phạm vi kinh độ | $x|y|z$ | biểu diễn duới dạng số thập phân |
---|---|---|---|---|
$0$: $\mbox{latitude} > 0^{\circ}$ | $0$: $\mbox{longitude} > 0^{\circ}$ | $0$: $|\mbox{longitude}| < 100^{\circ}$ | $0|0|0$ | $1$ |
$0$: $\mbox{latitude} > 0^{\circ}$ | $0$: $\mbox{longitude} > 0^{\circ}$ | $1$: $|\mbox{longitude}| \geq 100^{\circ}$ | $0|0|1$ | $2$ |
$0$: $\mbox{latitude} > 0^{\circ}$ | $1$: $\mbox{longitude} < 0^{\circ}$ | $0$: $|\mbox{longitude}| < 100^{\circ}$ | $0|1|0$ | $3$ |
$0$: $\mbox{latitude} > 0^{\circ}$ | $1$: $\mbox{longitude} < 0^{\circ}$ | $1$: $|\mbox{longitude}| \geq 100^{\circ}$ | $0|1|1$ | $4$ |
$1$: $\mbox{latitude} < 0^{\circ}$ | $0$: $\mbox{longitude} > 0^{\circ}$ | $0$: $|\mbox{longitude}| < 100^{\circ}$ | $1|0|0$ | $5$ |
$1$: $\mbox{latitude} < 0^{\circ}$ | $0$: $\mbox{longitude} > 0^{\circ}$ | $1$: $|\mbox{longitude}| \geq 100^{\circ}$ | $1|0|1$ | $6$ |
$1$: $\mbox{latitude} < 0^{\circ}$ | $1$: $\mbox{longitude} < 0^{\circ}$ | $0$: $|\mbox{longitude}| < 100^{\circ}$ | $1|1|0$ | $7$ |
$1$: $\mbox{latitude} < 0^{\circ}$ | $1$: $\mbox{longitude} < 0^{\circ}$ | $1$: $|\mbox{longitude}| \geq 100^{\circ}$ | $1|1|1$ | $8$ |
Việc triển khai R ngôn ngữ, javascript, PHP và Python để tính toán mã lưới vuông được cung cấp từ here. Trong danh sách này hàm số được định nghĩa như sau:
-
- calculate northen western geographic position of the grid (latitude, longitude) from meshcode
- meshcode_to_latlong_grid(meshcode)
-
- calculate northen western geographic position of the grid (latitude, longitude) from meshcode
- meshcode_to_latlong_NW(meshcode)
-
- calculate sourthern western geographic position of the grid (latitude, longitude) from meshcode
- meshcode_to_latlong_SW(meshcode)
-
- calculate northern eastern geographic position of the grid (latitude, longitude) from meshcode
- meshcode_to_latlong_NE(meshcode)
-
- calculate sourthern eastern geographic position of the grid (latitude, longitude) from meshcode
- meshcode_to_latlong_SE(meshcode)
-
- calculate northern western and sourthern eastern geographic positions of the grid (latitude0, longitude0, latitude1, longitude1) from meshcode
- meshcode_to_latlong_grid(meshcode)
-
- calculate a basic (3rd level) grid square code (10 digits) from a geographical position (latitude, longitude)
- cal_meshcode(latitude,longitude)
-
- calculate a 1st level grid square code (6 digits) from a geographical position (latitude, longitude)
- cal_meshcode1(latitude,longitude)
-
- calculate a 2nd level grid square code (8 digits) from a geographical position (latitude, longitude)
- cal_meshcode2(latitude,longitude)
-
- calculate a 3rd level grid square code (10 digits) from a geographical position (latitude, longitude)
- cal_meshcode3(latitude,longitude)
-
- calculate a 4th level grid square code (11 digits) from a geographical position (latitude, longitude)
- cal_meshcode4(latitude,longitude)
-
- calculate a 5th level grid square code (12 digits) from a geographical position (latitude, longitude)
- cal_meshcode5(latitude,longitude)
-
- calculate a 6th level grid square code (13 digits) from a geographical position (latitude, longitude)
- cal_meshcode6(latitude,longitude)
Tổng số mắt lưới chính trên toàn cầu là 360 × 180 × 3/2 = 97, 200. Tổng số mắt lưới thứ 2 lại gấp 64 lần so với mắt lưới thứ 1 nên tổng số mắt lưới thứ 2 trên toàn cầu là 6,220, 800. Tổng số mắt lưới thứ 3 hơn gấp 100 lần tổng số mắt lưới thứ 2 nên tổng số mắt lưới thứ 3 trên toàn cầu là 622.080.000. Tổng số lưới thứ 4 gấp 4 lần so với lưới thứ 3 nên tổng số các mắt lưới thứ 4 là 2, 488, 320,000. Tổng số lưới thứ 5 gấp 4 lần so với lưới thứ 4 nên tổng số lưới thứ 5 là 9,953, 280,000. Tổng số lưới thứ 6 gấp bốn lần tổng số lưới thứ 5, do đó tổng số lưới thứ 6 là 39, 813, 120.000.
Ngoài ra, vì diện tích đất liền chiếm 29,198% trên toàn cầu nên tổng số mắt lưới thế giới ở mỗi cấp độ và tổng số mắt lưới thế giới trong từng khu vực được thể hiện như bảng sau:
Loại lưới | # Tổng số mắt lưới trên toàn cầu | # Tổng số mắt lưới trên đất liền |
---|---|---|
Lưới thứ 1 | 97,200 | 28,383 |
Lưới thứ 2 | 6,220,800 | 1,816,461 |
Lưới thứ 3 | 622,080,000 | 181,646,116 |
Lưới thứ 4 | 2,488,320,000 | 726,584,463 |
Lưới thứ 5 | 9,953,280,000 | 2,906,337,853 |
Lưới thứ 6 | 39,813,120,000 | 11,625,351,413 |
Tổng số mắt lưới vuông trên toàn thế giới.
(c) 2015, 2016, 2017, 2018 Research Institute for World Grid Squares