• 260 likes • 386 Views
Nested Grids: the c-squares global grid and its notation. Tony Rees – CSIRO Marine and Atmospheric Research, Australia September 2011. Rationale for c-squares and this talk.
E N D
Nested Grids: the c-squares global grid and its notation Tony Rees – CSIRO Marine and Atmospheric Research, Australia September 2011
Rationale for c-squares and this talk • C-squares aims to provide a hierarchical, globally applicable system of geocodes representing discrete areas on the ground at a range of scales, including commonly used 1×1 and 0.5×0.5 degree squares, useful for: • spatial indexing and data aggregation • rapid data search • representation of complex areas (as strings of relevant c-squares) • simple/rapid web mapping (using the CMAR-developed c-squares mapper web utility) • The codes are parseable to easily extract location information for any desired scale down to the finest resolution represented • Moving location data into and out of the system (encoding and decoding) i.e. from/to lat-lon coordinates in decimal degrees is intended to be very logical, and can be accomplished by trivial amounts of code. Rationale for this talk: • Introduce the domain within which c-squares operates • Walk through the c-squares notation • Look briefly at some real-world applications presently using c-squares. Tony Rees: C-squares nested grid notation
Starting point for hierarchical subdivision • Decimal degrees of lat, lon are preferred international data and metadata interchange format (in WGS84) • 10 deg. squares are most logical starting point for recursive subdivision (other available options, e.g. 6×4 deg. squares, less useable) • Three notations have been proposed / used for global 10 deg. squares, of these the “WMO Square” notation is the most tractable, e.g. see the following from oceanteacher.org: • (See also e.g. Wikipedia for further information) Tony Rees: C-squares nested grid notation
180° W 150° W 120° W 90° W 60° W 30° W 0° 30° E 60° E 90° E 120° E 150° E 180° E 90° N 7817 5017 5817 7117 7417 5117 5217 7017 7517 5517 5417 7317 7617 7217 7717 5717 5617 5317 5516 5616 7616 5416 5816 7316 7716 7216 5716 5116 7416 7016 5016 7516 5216 5316 7816 7116 7515 5115 5815 5015 7115 7715 5515 7415 7815 5315 7215 5415 5615 5215 7315 7015 7615 5715 5014 7414 7714 7514 7014 5714 5214 7814 5114 5814 5514 5614 7614 5314 7214 5414 7314 7114 7313 7213 7713 5713 7113 7613 5513 5613 5813 5413 5313 7513 5213 7013 5113 7413 5013 7813 7812 7112 5512 7612 5812 5112 7412 5612 5312 7712 5012 7012 5712 5212 7212 7312 5412 7512 5111 5211 5611 7611 5511 7311 7511 7111 5311 7011 5811 7411 5411 5711 7811 7711 5011 7211 5010 5610 5110 7810 7610 5510 7310 7710 5710 5210 5810 7110 7410 7010 7210 7510 5310 5410 5809 5509 5109 5209 7409 7809 5709 5009 7509 7609 5409 5609 7709 5309 7209 7009 7109 7309 5308 5408 5008 7508 7108 5208 5108 7408 7608 5808 7208 5608 7708 7308 7808 5508 5708 7008 5007 7507 7307 7207 7807 7607 7407 7707 5507 5407 5807 5107 5707 5207 7107 7007 5607 5307 5406 7806 7406 7306 7106 5606 7206 7606 7706 5706 5206 5006 5106 5806 7506 5506 7006 5306 7005 5005 5705 7805 7605 7405 5305 7305 5205 7105 5605 5505 5805 7205 5405 5105 7505 7705 7404 5304 7804 5604 5204 7304 7204 7504 7604 5104 5504 7704 7004 7104 5704 5004 5804 5404 7803 7803 7803 5103 7803 7803 7803 5403 7803 7803 5803 5203 5603 5503 5703 5303 5003 7803 5002 5502 7602 7202 5102 5402 7802 7102 5602 7502 5302 5702 7702 7402 5802 7002 7302 5202 5701 7201 7801 7601 7101 5501 7001 7301 7401 7501 5801 5201 7701 5301 5401 5101 5001 5601 7200 5600 7400 7000 5500 7800 7300 7700 7100 7600 5100 5800 5300 7500 5400 5000 5700 5200 1000 3400 1200 3800 1800 3600 3300 1600 1400 1100 3000 3200 1500 3700 1300 3100 3500 1700 1401 3301 1201 3601 3001 3201 1301 3401 1001 3801 1101 1501 3701 3501 1701 1801 3101 1601 3002 1402 1002 3502 1802 3402 1702 3802 1102 1602 3602 3102 1502 1202 3302 3202 1302 3702 1003 1803 1703 3603 1603 3803 1503 3703 1303 3303 3203 1403 1203 3503 3403 3003 3103 1103 1104 1504 3104 1604 3704 1704 3504 1404 1204 3404 1304 1804 3004 3604 3804 1004 3204 3304 1805 1505 1205 3005 3105 1105 3205 1005 1405 3605 1305 3405 1605 3505 3305 1705 3705 3805 3806 1506 1706 3606 1206 1806 1406 1306 3006 1606 3206 3306 1006 3506 1106 3406 3706 3106 3607 3207 1307 1607 1407 1207 3307 1707 3507 3007 3807 1107 1807 3407 1507 1007 3107 3707 1608 1808 3108 3308 1508 3208 3708 3008 1008 1108 3508 1408 1708 1208 1308 3408 3608 3808 1309 3509 3109 3609 3409 1509 3709 1009 1809 1409 1109 3309 1609 3009 3209 1709 1209 3809 1310 3610 3710 1810 1010 3810 1610 1110 1710 3010 3310 3410 1210 3510 1510 3210 1410 3110 1811 1111 1011 1711 3511 3111 1511 1411 3311 3711 1311 3611 3211 3011 3811 1211 1611 3411 3312 1312 3812 1212 1012 1812 3512 3712 3412 1412 3012 1112 3212 1612 3612 1712 3112 1512 3413 1313 3613 1113 3013 1413 1713 3513 1013 3313 3213 1513 3113 1613 3813 1813 3713 1213 1214 1714 3514 3614 3714 1314 3414 3014 1014 3314 3114 1614 1414 3814 1114 1514 1814 3214 3715 1515 3415 1415 3315 1615 1215 3815 1715 1815 3515 1315 3215 3615 1015 1115 3015 3115 3116 1716 3716 3216 1616 3616 1516 3516 3416 3316 3016 1216 3816 1016 1316 1116 1416 1816 1717 1617 1517 1117 3717 3017 3217 3817 3317 3617 3417 1317 1817 1017 1417 1217 3117 3517 60° N 30° N 0° 30° S 60° S 90° S WMO Squares: global quadrants NW (7---) NE (1---) SW (5---) SE (3---) Global quadrants numbered 1, 3, 5, 7 anticlockwise from NE Tony Rees: C-squares nested grid notation Tony Rees: C-squares nested grid notation
180° W 150° W 120° W 90° W 60° W 30° W 0° 30° E 60° E 90° E 120° E 150° E 180° E 90° N 7817 5017 5817 7117 7417 5117 5217 7017 7517 5517 5417 7317 7617 7217 7717 5717 5617 5317 5516 5616 7616 5416 5816 7316 7716 7216 5716 5116 7416 7016 5016 7516 5216 5316 7816 7116 7515 5115 5815 5015 7115 7715 5515 7415 7815 5315 7215 5415 5615 5215 7315 7015 7615 5715 5014 7414 7714 7514 7014 5714 5214 7814 5114 5814 5514 5614 7614 5314 7214 5414 7314 7114 7313 7213 7713 5713 7113 7613 5513 5613 5813 5413 5313 7513 5213 7013 5113 7413 5013 7813 7812 7112 5512 7612 5812 5112 7412 5612 5312 7712 5012 7012 5712 5212 7212 7312 5412 7512 5111 5211 5611 7611 5511 7311 7511 7111 5311 7011 5811 7411 5411 5711 7811 7711 5011 7211 5010 5610 5110 7810 7610 5510 7310 7710 5710 5210 5810 7110 7410 7010 7210 7510 5310 5410 5809 5509 5109 5209 7409 7809 5709 5009 7509 7609 5409 5609 7709 5309 7209 7009 7109 7309 5308 5408 5008 7508 7108 5208 5108 7408 7608 5808 7208 5608 7708 7308 7808 5508 5708 7008 5007 7507 7307 7207 7807 7607 7407 7707 5507 5407 5807 5107 5707 5207 7107 7007 5607 5307 5406 7806 7406 7306 7106 5606 7206 7606 7706 5706 5206 5006 5106 5806 7506 5506 7006 5306 7005 5005 5705 7805 7605 7405 5305 7305 5205 7105 5605 5505 5805 7205 5405 5105 7505 7705 7404 5304 7804 5604 5204 7304 7204 7504 7604 5104 5504 7704 7004 7104 5704 5004 5804 5404 7803 7803 7803 5103 7803 7803 7803 5403 7803 7803 5803 5203 5603 5503 5703 5303 5003 7803 5002 5502 7602 7202 5102 5402 7802 7102 5602 7502 5302 5702 7702 7402 5802 7002 7302 5202 5701 7201 7801 7601 7101 5501 7001 7301 7401 7501 5801 5201 7701 5301 5401 5101 5001 5601 7200 5600 7400 7000 5500 7800 7300 7700 7100 7600 5100 5800 5300 7500 5400 5000 5700 5200 1000 3400 1200 3800 1800 3600 3300 1600 1400 1100 3000 3200 1500 3700 1300 3100 3500 1700 1401 3301 1201 3601 3001 3201 1301 3401 1001 3801 1101 1501 3701 3501 1701 1801 3101 1601 3002 1402 1002 3502 1802 3402 1702 3802 1102 1602 3602 3102 1502 1202 3302 3202 1302 3702 1003 1803 1703 3603 1603 3803 1503 3703 1303 3303 3203 1403 1203 3503 3403 3003 3103 1103 1104 1504 3104 1604 3704 1704 3504 1404 1204 3404 1304 1804 3004 3604 3804 1004 3204 3304 1805 1505 1205 3005 3105 1105 3205 1005 1405 3605 1305 3405 1605 3505 3305 1705 3705 3805 3806 1506 1706 3606 1206 1806 1406 1306 3006 1606 3206 3306 1006 3506 1106 3406 3706 3106 3607 3207 1307 1607 1407 1207 3307 1707 3507 3007 3807 1107 1807 3407 1507 1007 3107 3707 1608 1808 3108 3308 1508 3208 3708 3008 1008 1108 3508 1408 1708 1208 1308 3408 3608 3808 1309 3509 3109 3609 3409 1509 3709 1009 1809 1409 1109 3309 1609 3009 3209 1709 1209 3809 1310 3610 3710 1810 1010 3810 1610 1110 1710 3010 3310 3410 1210 3510 1510 3210 1410 3110 1811 1111 1011 1711 3511 3111 1511 1411 3311 3711 1311 3611 3211 3011 3811 1211 1611 3411 3312 1312 3812 1212 1012 1812 3512 3712 3412 1412 3012 1112 3212 1612 3612 1712 3112 1512 3413 1313 3613 1113 3013 1413 1713 3513 1013 3313 3213 1513 3113 1613 3813 1813 3713 1213 1214 1714 3514 3614 3714 1314 3414 3014 1014 3314 3114 1614 1414 3814 1114 1514 1814 3214 3715 1515 3415 1415 3315 1615 1215 3815 1715 1815 3515 1315 3215 3615 1015 1115 3015 3115 3116 1716 3716 3216 1616 3616 1516 3516 3416 3316 3016 1216 3816 1016 1316 1116 1416 1816 1717 1617 1517 1117 3717 3017 3217 3817 3317 3617 3417 1317 1817 1017 1417 1217 3117 3517 60° N 30° N 0° 30° S 60° S 90° S WMO Squares: ten degree squares NW (7yxx) NE (1yxx) SW (5yxx) SE (3yxx) Then: y = tens of latitude N / S 0–8 xx = tens of longitude W / E 00–17 Tony Rees: C-squares nested grid notation Tony Rees: C-squares nested grid notation
180° W 150° W 120° W 90° W 60° W 30° W 0° 30° E 60° E 90° E 120° E 150° E 180° E 90° N 7817 5017 5817 7117 7417 5117 5217 7017 7517 5517 5417 7317 7617 7217 7717 5717 5617 5317 5516 5616 7616 5416 5816 7316 7716 7216 5716 5116 7416 7016 5016 7516 5216 5316 7816 7116 7515 5115 5815 5015 7115 7715 5515 7415 7815 5315 7215 5415 5615 5215 7315 7015 7615 5715 5014 7414 7714 7514 7014 5714 5214 7814 5114 5814 5514 5614 7614 5314 7214 5414 7314 7114 7313 7213 7713 5713 7113 7613 5513 5613 5813 5413 5313 7513 5213 7013 5113 7413 5013 7813 7812 7112 5512 7612 5812 5112 7412 5612 5312 7712 5012 7012 5712 5212 7212 7312 5412 7512 5111 5211 5611 7611 5511 7311 7511 7111 5311 7011 5811 7411 5411 5711 7811 7711 5011 7211 5010 5610 5110 7810 7610 5510 7310 7710 5710 5210 5810 7110 7410 7010 7210 7510 5310 5410 5809 5509 5109 5209 7409 7809 5709 5009 7509 7609 5409 5609 7709 5309 7209 7009 7109 7309 5308 5408 5008 7508 7108 5208 5108 7408 7608 5808 7208 5608 7708 7308 7808 5508 5708 7008 5007 7507 7307 7207 7807 7607 7407 7707 5507 5407 5807 5107 5707 5207 7107 7007 5607 5307 5406 7806 7406 7306 7106 5606 7206 7606 7706 5706 5206 5006 5106 5806 7506 5506 7006 5306 7005 5005 5705 7805 7605 7405 5305 7305 5205 7105 5605 5505 5805 7205 5405 5105 7505 7705 7404 5304 7804 5604 5204 7304 7204 7504 7604 5104 5504 7704 7004 7104 5704 5004 5804 5404 7803 7803 7803 5103 7803 7803 7803 5403 7803 7803 5803 5203 5603 5503 5703 5303 5003 7803 5002 5502 7602 7202 5102 5402 7802 7102 5602 7502 5302 5702 7702 7402 5802 7002 7302 5202 5701 7201 7801 7601 7101 5501 7001 7301 7401 7501 5801 5201 7701 5301 5401 5101 5001 5601 7200 5600 7400 7000 5500 7800 7300 7700 7100 7600 5100 5800 5300 7500 5400 5000 5700 5200 1000 3400 1200 3800 1800 3600 3300 1600 1400 1100 3000 3200 1500 3700 1300 3100 3500 1700 1401 3301 1201 3601 3001 3201 1301 3401 1001 3801 1101 1501 3701 3501 1701 1801 3101 1601 3002 1402 1002 3502 1802 3402 1702 3802 1102 1602 3602 3102 1502 1202 3302 3202 1302 3702 1003 1803 1703 3603 1603 3803 1503 3703 1303 3303 3203 1403 1203 3503 3403 3003 3103 1103 1104 1504 3104 1604 3704 1704 3504 1404 1204 3404 1304 1804 3004 3604 3804 1004 3204 3304 1805 1505 1205 3005 3105 1105 3205 1005 1405 3605 1305 3405 1605 3505 3305 1705 3705 3805 3806 1506 1706 3606 1206 1806 1406 1306 3006 1606 3206 3306 1006 3506 1106 3406 3706 3106 3607 3207 1307 1607 1407 1207 3307 1707 3507 3007 3807 1107 1807 3407 1507 1007 3107 3707 1608 1808 3108 3308 1508 3208 3708 3008 1008 1108 3508 1408 1708 1208 1308 3408 3608 3808 1309 3509 3109 3609 3409 1509 3709 1009 1809 1409 1109 3309 1609 3009 3209 1709 1209 3809 1310 3610 3710 1810 1010 3810 1610 1110 1710 3010 3310 3410 1210 3510 1510 3210 1410 3110 1811 1111 1011 1711 3511 3111 1511 1411 3311 3711 1311 3611 3211 3011 3811 1211 1611 3411 3312 1312 3812 1212 1012 1812 3512 3712 3412 1412 3012 1112 3212 1612 3612 1712 3112 1512 3413 1313 3613 1113 3013 1413 1713 3513 1013 3313 3213 1513 3113 1613 3813 1813 3713 1213 1214 1714 3514 3614 3714 1314 3414 3014 1014 3314 3114 1614 1414 3814 1114 1514 1814 3214 3715 1515 3415 1415 3315 1615 1215 3815 1715 1815 3515 1315 3215 3615 1015 1115 3015 3115 3116 1716 3716 3216 1616 3616 1516 3516 3416 3316 3016 1216 3816 1016 1316 1116 1416 1816 1717 1617 1517 1117 3717 3017 3217 3817 3317 3617 3417 1317 1817 1017 1417 1217 3117 3517 60° N 30° N 0° 30° S 60° S 90° S WMO Squares: ten degree squares NW (7yxx) NE (1yxx) SW (5yxx) SE (3yxx) Example: Canberra (SE global quadrant, lat. 35.27603 S, 149.13435 E) is in square 3314(simple to encode/decode once the principle is known; next digits “5” and “9” will be used in c-squares notation for 1 deg. square, and so on) Tony Rees: C-squares nested grid notation Tony Rees: C-squares nested grid notation
Other 10 deg. squares in the Australian + NZ region of interest Tony Rees: C-squares nested grid notation
“C-squares” hierarchical subdivision of 10 degree WMO squares • No previous established method for hierarchical(recursive) subdivision of WMO or other10 degree squares • C-squares notation developed to fill this need,late 2001 • Has been in use since that time without problem,also written descriptions available in 2 publishedsources (“Oceanography” article 2003; L. Hill “Georeferencing” textbook, 2006), plus Wikipedia • Supported by available utilities including global + regionalc-squares mapper, online and offline encoders/decoders, plus more (refer www.cmar.csiro.au/csquares) Tony Rees: C-squares nested grid notation
The c-squares hierarchical notation • For decimal degrees, could simply nest recursively at /10 intervals, however in practice intermediate resolutions often useful – e.g. 0.5 deg. global grids used by AquaMaps, others • C-squares therefore nests at alternating /2 then /5 intervals: produces grid compatible with decimal degrees, but also serves needs of users for intermediate resolution steps • Notation examples: • 3314 10×10 deg. square (~1000 km nominal) • 3314:1 5×5 deg. square (~500 km nominal) • 3314:100 1×1 deg. square (~100 km nominal) • 3314:100:1 0.5×0.5 deg. square (~50 km nominal) • 3314:100:100 0.1×0.1 deg. square (~10 km nominal) (etc.) • Note, this is a true nested notation – every child cell explicitly references its parent, can do coarser <> finer searches as required over codes without any transform needed (alternative would be non-interleaved codes e.g. British system, which does not support this feature) • Leading digit of each “triple” indicates “intermediate quadrant”, as follows: Tony Rees: C-squares nested grid notation
C-squares nested subdivisions (e.g. in SE global quadrant): Intermediate quadrant notation (based on absolute values irrespective of positive or negative): 1: low lat, low lon 2: low lat, high lon 3: high lat, low lon 4: high lat, high lon Tony Rees: C-squares nested grid notation
C-squares nested subdivisions (e.g. in SE global quadrant): Continuing “Canberra” example , lat. 35 S, 149 E: 5 deg. square will be 3314:4 1 deg. square will be 3314:459 (etc.) Tony Rees: C-squares nested grid notation
C-squares encoding / decoding • Result: ~simple, logical system for encoding / decoding; encoders can be written very easily (examples in 5+ languages already available), decoding even by mental arithmetic • Note, actual bounds of squares are technically adjacent, not congruent • Square 1000 extends northwards from 0 to 9.999… (not 0 to 10) for encoding purposes (data located at lat. 10.0 is into the next square) – however is rendered as 0 to 10 for display • A few special cases to handle: • zero lat, lon is positive, not negative (-0 does not exist for encoding purposes) • 90 N/S treated as 89.999… (no next available square) • 180 E/W treated as 179.999… (same) – also, could make executive decision to deprecate one of these if preferred Tony Rees: C-squares nested grid notation
http://www.cmar.csiro.au/csquares/ Tony Rees: C-squares nested grid notation
C-squares in practice – e.g. in CMAR “MarLIN” metadata system Tony Rees: C-squares nested grid notation
C-squares in practice – e.g. in CMAR “MarLIN” metadata system Tony Rees: C-squares nested grid notation
C-squares in practice – e.g. in CMAR “MarLIN” metadata system adds these elements: Tony Rees: C-squares nested grid notation
C-squares in practice – e.g. in CMAR “MarLIN” metadata system adds these elements: Tony Rees: C-squares nested grid notation
C-squares in practice – e.g. in CMAR “MarLIN” metadata system …can even Google “3414:371:2” to retrieve this dataset description (plus spatially overlapping ones) adds these elements: Tony Rees: C-squares nested grid notation
Sample c-squares enabled systems (as at Sep 2011) AquaMaps marine species modelled distribution CMAR satellite data footprint OBIS point data records CMAR project survey sites Tony Rees: C-squares nested grid notation
Some stats • GLOBAL: • Global 1 deg. squares (100 km nominal): 64,800 • Global 0.5 deg. squares (50 km nominal): 259,200 • Global 0.1 deg. squares (10 km nominal): 6.48 million • Austr. continental area (e.g. for an array of 5 x 4 10 deg. squares): • 1 deg. squares (100 km nominal): 2,000 • 0.5 deg. squares (50 km nominal): 8,000 • 0.1 deg. squares (10 km nominal): 200,000 • 0.05 deg. squares (5 km nominal): 800,000 • 0.01 deg. squares (1 km nominal): 20 million • 0.005 deg. squares (500 m nominal): 80 million Tony Rees: C-squares nested grid notation
In conclusion… • C-squares offers a scalable, easy-to-use indexing system for lat-lon based grid cells across the Australian region, also completely compatible with global data needs • C-squares hierarchical codes can be searched at a range of scales via substring comparisons, also can be truncated as needed to coarsen resolutions if required • C-squares has no real-world competitors as a coding system compatible with decimal degrees; systems employing c-squares have been in continuous production use in Australia and elsewhere for almost 10 years with zero problems. Tony Rees: C-squares nested grid notation
Contact Us Phone: 1300 363 400 or +61 3 9545 2176 Email: enquiries@csiro.au Web: www.csiro.au Thank you image courtesy Tisham Dhar, CMAR VIZ project Tony Rees: C-squares nested grid notation
Supplementary slides Tony Rees: C-squares nested grid notation
British National Grid indexing • Initial letter (H, J, N, O, S, T) indicates 500km square. Theoretically, the system extends far over the Atlantic Ocean and well into Western Europe with square AA near Iceland and square ZZ in northern Italy, however the normal area mapped is shown on the diagram. • For the second letter, each 500 km square is subdivided into 25 squares of 100 by 100 km, each with a letter code from A to Z (omitting I) starting with A in the north-west corner to Z in the south-east corner. • Within each square, eastings and northings from the origin (south west corner) of the square are given numerically. For example, NH0325 means a 1 km square whose south-west corner is 3 km east and 25 km north from the south-west corner of square NH. A location can be indicated to varying resolutions numerically, usually from two digits in each coordinate (for a 1 km square) through to five (for a 1 m square); in each case the first half of the digits is for the first coordinate and the second half for the other. Tony Rees: C-squares nested grid notation
Equal area satellite data swath requires more grid squares as it approaches the poles – but system can handle this Tony Rees: C-squares nested grid notation