timezonefinder-data 1.2026.3__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- timezonefinder_data/__init__.py +32 -0
- timezonefinder_data/data/boundaries/coordinates.bin +0 -0
- timezonefinder_data/data/boundaries/xmax.npy +0 -0
- timezonefinder_data/data/boundaries/xmin.npy +0 -0
- timezonefinder_data/data/boundaries/ymax.npy +0 -0
- timezonefinder_data/data/boundaries/ymin.npy +0 -0
- timezonefinder_data/data/data_version.txt +1 -0
- timezonefinder_data/data/hole_registry.json +390 -0
- timezonefinder_data/data/holes/coordinates.bin +0 -0
- timezonefinder_data/data/holes/poly_ref.npy +0 -0
- timezonefinder_data/data/holes/xmax.npy +0 -0
- timezonefinder_data/data/holes/xmin.npy +0 -0
- timezonefinder_data/data/holes/ymax.npy +0 -0
- timezonefinder_data/data/holes/ymin.npy +0 -0
- timezonefinder_data/data/hybrid_shortcuts_uint16.bin +0 -0
- timezonefinder_data/data/schemas/hybrid_shortcuts_uint16.fbs +46 -0
- timezonefinder_data/data/schemas/hybrid_shortcuts_uint8.fbs +46 -0
- timezonefinder_data/data/schemas/polygons.fbs +17 -0
- timezonefinder_data/data/timezone_names.txt +444 -0
- timezonefinder_data/data/zone_ids.npy +0 -0
- timezonefinder_data/data/zone_positions.npy +0 -0
- timezonefinder_data-1.2026.3.dist-info/METADATA +590 -0
- timezonefinder_data-1.2026.3.dist-info/RECORD +26 -0
- timezonefinder_data-1.2026.3.dist-info/WHEEL +5 -0
- timezonefinder_data-1.2026.3.dist-info/licenses/DATA_LICENSE +538 -0
- timezonefinder_data-1.2026.3.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"""The timezone boundary data ``timezonefinder`` answers lookups from.
|
|
2
|
+
|
|
3
|
+
This distribution exists to give the ~63 MB dataset a release cadence of its own:
|
|
4
|
+
an upstream boundary release ships as a new ``timezonefinder-data`` without a
|
|
5
|
+
``timezonefinder`` release, and a user who needs the answers of a particular
|
|
6
|
+
dataset can pin it without giving up code fixes.
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
from importlib.metadata import PackageNotFoundError, version as _metadata_version
|
|
10
|
+
from pathlib import Path
|
|
11
|
+
|
|
12
|
+
# The packaged data directory. A real filesystem path rather than an
|
|
13
|
+
# ``importlib.resources`` traversable, because ``FileCoordAccessor`` memory-maps the
|
|
14
|
+
# coordinate files via ``fileno()`` - which is also why the data ships inside an
|
|
15
|
+
# importable package instead of as bare package data.
|
|
16
|
+
DATA_DIR: Path = Path(__file__).parent / "data"
|
|
17
|
+
|
|
18
|
+
# The installed distribution's version, read the way ``timezonefinder.__version__``
|
|
19
|
+
# reads its own: from the installed metadata rather than a hand-maintained constant,
|
|
20
|
+
# which drifts from what is actually installed. A bug report wants both numbers, and
|
|
21
|
+
# only the pair says which dataset answered. ``PackageNotFoundError`` bites when the
|
|
22
|
+
# package is imported without being installed (a source checkout with no metadata),
|
|
23
|
+
# where "unknown" is honest.
|
|
24
|
+
try:
|
|
25
|
+
__version__ = _metadata_version("timezonefinder-data")
|
|
26
|
+
except PackageNotFoundError: # pragma: no cover - source checkout without install
|
|
27
|
+
__version__ = "unknown"
|
|
28
|
+
|
|
29
|
+
__all__ = (
|
|
30
|
+
"DATA_DIR",
|
|
31
|
+
"__version__",
|
|
32
|
+
)
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
2026c
|
|
@@ -0,0 +1,390 @@
|
|
|
1
|
+
{
|
|
2
|
+
"1165": [
|
|
3
|
+
2,
|
|
4
|
+
270
|
|
5
|
+
],
|
|
6
|
+
"1184": [
|
|
7
|
+
15,
|
|
8
|
+
272
|
|
9
|
+
],
|
|
10
|
+
"1188": [
|
|
11
|
+
44,
|
|
12
|
+
287
|
|
13
|
+
],
|
|
14
|
+
"1191": [
|
|
15
|
+
2,
|
|
16
|
+
331
|
|
17
|
+
],
|
|
18
|
+
"1192": [
|
|
19
|
+
37,
|
|
20
|
+
333
|
|
21
|
+
],
|
|
22
|
+
"1193": [
|
|
23
|
+
20,
|
|
24
|
+
370
|
|
25
|
+
],
|
|
26
|
+
"1196": [
|
|
27
|
+
1,
|
|
28
|
+
390
|
|
29
|
+
],
|
|
30
|
+
"1199": [
|
|
31
|
+
28,
|
|
32
|
+
391
|
|
33
|
+
],
|
|
34
|
+
"1200": [
|
|
35
|
+
3,
|
|
36
|
+
419
|
|
37
|
+
],
|
|
38
|
+
"1204": [
|
|
39
|
+
1,
|
|
40
|
+
422
|
|
41
|
+
],
|
|
42
|
+
"1205": [
|
|
43
|
+
16,
|
|
44
|
+
423
|
|
45
|
+
],
|
|
46
|
+
"1208": [
|
|
47
|
+
4,
|
|
48
|
+
439
|
|
49
|
+
],
|
|
50
|
+
"1212": [
|
|
51
|
+
2,
|
|
52
|
+
443
|
|
53
|
+
],
|
|
54
|
+
"1214": [
|
|
55
|
+
1,
|
|
56
|
+
445
|
|
57
|
+
],
|
|
58
|
+
"1217": [
|
|
59
|
+
2,
|
|
60
|
+
446
|
|
61
|
+
],
|
|
62
|
+
"1218": [
|
|
63
|
+
5,
|
|
64
|
+
448
|
|
65
|
+
],
|
|
66
|
+
"1219": [
|
|
67
|
+
3,
|
|
68
|
+
453
|
|
69
|
+
],
|
|
70
|
+
"1220": [
|
|
71
|
+
14,
|
|
72
|
+
456
|
|
73
|
+
],
|
|
74
|
+
"1226": [
|
|
75
|
+
12,
|
|
76
|
+
470
|
|
77
|
+
],
|
|
78
|
+
"1227": [
|
|
79
|
+
6,
|
|
80
|
+
482
|
|
81
|
+
],
|
|
82
|
+
"1230": [
|
|
83
|
+
1,
|
|
84
|
+
488
|
|
85
|
+
],
|
|
86
|
+
"1234": [
|
|
87
|
+
1,
|
|
88
|
+
489
|
|
89
|
+
],
|
|
90
|
+
"1236": [
|
|
91
|
+
7,
|
|
92
|
+
490
|
|
93
|
+
],
|
|
94
|
+
"1241": [
|
|
95
|
+
21,
|
|
96
|
+
497
|
|
97
|
+
],
|
|
98
|
+
"1246": [
|
|
99
|
+
3,
|
|
100
|
+
518
|
|
101
|
+
],
|
|
102
|
+
"1255": [
|
|
103
|
+
1,
|
|
104
|
+
521
|
|
105
|
+
],
|
|
106
|
+
"1258": [
|
|
107
|
+
5,
|
|
108
|
+
522
|
|
109
|
+
],
|
|
110
|
+
"1265": [
|
|
111
|
+
2,
|
|
112
|
+
527
|
|
113
|
+
],
|
|
114
|
+
"1269": [
|
|
115
|
+
1,
|
|
116
|
+
529
|
|
117
|
+
],
|
|
118
|
+
"1271": [
|
|
119
|
+
2,
|
|
120
|
+
530
|
|
121
|
+
],
|
|
122
|
+
"1274": [
|
|
123
|
+
2,
|
|
124
|
+
532
|
|
125
|
+
],
|
|
126
|
+
"1275": [
|
|
127
|
+
4,
|
|
128
|
+
534
|
|
129
|
+
],
|
|
130
|
+
"1277": [
|
|
131
|
+
13,
|
|
132
|
+
538
|
|
133
|
+
],
|
|
134
|
+
"1279": [
|
|
135
|
+
17,
|
|
136
|
+
551
|
|
137
|
+
],
|
|
138
|
+
"1282": [
|
|
139
|
+
2,
|
|
140
|
+
568
|
|
141
|
+
],
|
|
142
|
+
"1284": [
|
|
143
|
+
1,
|
|
144
|
+
570
|
|
145
|
+
],
|
|
146
|
+
"1285": [
|
|
147
|
+
11,
|
|
148
|
+
571
|
|
149
|
+
],
|
|
150
|
+
"1289": [
|
|
151
|
+
2,
|
|
152
|
+
582
|
|
153
|
+
],
|
|
154
|
+
"1293": [
|
|
155
|
+
13,
|
|
156
|
+
584
|
|
157
|
+
],
|
|
158
|
+
"1294": [
|
|
159
|
+
1,
|
|
160
|
+
597
|
|
161
|
+
],
|
|
162
|
+
"1295": [
|
|
163
|
+
4,
|
|
164
|
+
598
|
|
165
|
+
],
|
|
166
|
+
"1298": [
|
|
167
|
+
6,
|
|
168
|
+
602
|
|
169
|
+
],
|
|
170
|
+
"1299": [
|
|
171
|
+
14,
|
|
172
|
+
608
|
|
173
|
+
],
|
|
174
|
+
"1303": [
|
|
175
|
+
4,
|
|
176
|
+
622
|
|
177
|
+
],
|
|
178
|
+
"1306": [
|
|
179
|
+
4,
|
|
180
|
+
626
|
|
181
|
+
],
|
|
182
|
+
"1310": [
|
|
183
|
+
32,
|
|
184
|
+
630
|
|
185
|
+
],
|
|
186
|
+
"1314": [
|
|
187
|
+
34,
|
|
188
|
+
662
|
|
189
|
+
],
|
|
190
|
+
"1317": [
|
|
191
|
+
37,
|
|
192
|
+
696
|
|
193
|
+
],
|
|
194
|
+
"1320": [
|
|
195
|
+
22,
|
|
196
|
+
733
|
|
197
|
+
],
|
|
198
|
+
"1321": [
|
|
199
|
+
1,
|
|
200
|
+
755
|
|
201
|
+
],
|
|
202
|
+
"16": [
|
|
203
|
+
4,
|
|
204
|
+
0
|
|
205
|
+
],
|
|
206
|
+
"196": [
|
|
207
|
+
95,
|
|
208
|
+
19
|
|
209
|
+
],
|
|
210
|
+
"248": [
|
|
211
|
+
1,
|
|
212
|
+
114
|
|
213
|
+
],
|
|
214
|
+
"259": [
|
|
215
|
+
2,
|
|
216
|
+
115
|
|
217
|
+
],
|
|
218
|
+
"26": [
|
|
219
|
+
1,
|
|
220
|
+
4
|
|
221
|
+
],
|
|
222
|
+
"262": [
|
|
223
|
+
2,
|
|
224
|
+
117
|
|
225
|
+
],
|
|
226
|
+
"280": [
|
|
227
|
+
1,
|
|
228
|
+
119
|
|
229
|
+
],
|
|
230
|
+
"290": [
|
|
231
|
+
1,
|
|
232
|
+
120
|
|
233
|
+
],
|
|
234
|
+
"291": [
|
|
235
|
+
3,
|
|
236
|
+
121
|
|
237
|
+
],
|
|
238
|
+
"300": [
|
|
239
|
+
1,
|
|
240
|
+
124
|
|
241
|
+
],
|
|
242
|
+
"33": [
|
|
243
|
+
1,
|
|
244
|
+
5
|
|
245
|
+
],
|
|
246
|
+
"335": [
|
|
247
|
+
1,
|
|
248
|
+
125
|
|
249
|
+
],
|
|
250
|
+
"358": [
|
|
251
|
+
1,
|
|
252
|
+
126
|
|
253
|
+
],
|
|
254
|
+
"360": [
|
|
255
|
+
2,
|
|
256
|
+
127
|
|
257
|
+
],
|
|
258
|
+
"370": [
|
|
259
|
+
1,
|
|
260
|
+
129
|
|
261
|
+
],
|
|
262
|
+
"385": [
|
|
263
|
+
1,
|
|
264
|
+
130
|
|
265
|
+
],
|
|
266
|
+
"406": [
|
|
267
|
+
1,
|
|
268
|
+
131
|
|
269
|
+
],
|
|
270
|
+
"455": [
|
|
271
|
+
1,
|
|
272
|
+
132
|
|
273
|
+
],
|
|
274
|
+
"457": [
|
|
275
|
+
3,
|
|
276
|
+
133
|
|
277
|
+
],
|
|
278
|
+
"461": [
|
|
279
|
+
1,
|
|
280
|
+
136
|
|
281
|
+
],
|
|
282
|
+
"471": [
|
|
283
|
+
1,
|
|
284
|
+
137
|
|
285
|
+
],
|
|
286
|
+
"483": [
|
|
287
|
+
1,
|
|
288
|
+
138
|
|
289
|
+
],
|
|
290
|
+
"497": [
|
|
291
|
+
19,
|
|
292
|
+
139
|
|
293
|
+
],
|
|
294
|
+
"50": [
|
|
295
|
+
2,
|
|
296
|
+
6
|
|
297
|
+
],
|
|
298
|
+
"509": [
|
|
299
|
+
2,
|
|
300
|
+
158
|
|
301
|
+
],
|
|
302
|
+
"529": [
|
|
303
|
+
1,
|
|
304
|
+
160
|
|
305
|
+
],
|
|
306
|
+
"535": [
|
|
307
|
+
1,
|
|
308
|
+
161
|
|
309
|
+
],
|
|
310
|
+
"545": [
|
|
311
|
+
2,
|
|
312
|
+
162
|
|
313
|
+
],
|
|
314
|
+
"597": [
|
|
315
|
+
45,
|
|
316
|
+
164
|
|
317
|
+
],
|
|
318
|
+
"627": [
|
|
319
|
+
1,
|
|
320
|
+
209
|
|
321
|
+
],
|
|
322
|
+
"677": [
|
|
323
|
+
8,
|
|
324
|
+
210
|
|
325
|
+
],
|
|
326
|
+
"754": [
|
|
327
|
+
21,
|
|
328
|
+
218
|
|
329
|
+
],
|
|
330
|
+
"765": [
|
|
331
|
+
2,
|
|
332
|
+
239
|
|
333
|
+
],
|
|
334
|
+
"794": [
|
|
335
|
+
1,
|
|
336
|
+
241
|
|
337
|
+
],
|
|
338
|
+
"795": [
|
|
339
|
+
1,
|
|
340
|
+
242
|
|
341
|
+
],
|
|
342
|
+
"803": [
|
|
343
|
+
6,
|
|
344
|
+
243
|
|
345
|
+
],
|
|
346
|
+
"804": [
|
|
347
|
+
1,
|
|
348
|
+
249
|
|
349
|
+
],
|
|
350
|
+
"809": [
|
|
351
|
+
6,
|
|
352
|
+
250
|
|
353
|
+
],
|
|
354
|
+
"84": [
|
|
355
|
+
11,
|
|
356
|
+
8
|
|
357
|
+
],
|
|
358
|
+
"847": [
|
|
359
|
+
2,
|
|
360
|
+
256
|
|
361
|
+
],
|
|
362
|
+
"862": [
|
|
363
|
+
1,
|
|
364
|
+
258
|
|
365
|
+
],
|
|
366
|
+
"864": [
|
|
367
|
+
2,
|
|
368
|
+
259
|
|
369
|
+
],
|
|
370
|
+
"877": [
|
|
371
|
+
1,
|
|
372
|
+
261
|
|
373
|
+
],
|
|
374
|
+
"887": [
|
|
375
|
+
2,
|
|
376
|
+
262
|
|
377
|
+
],
|
|
378
|
+
"891": [
|
|
379
|
+
3,
|
|
380
|
+
264
|
|
381
|
+
],
|
|
382
|
+
"895": [
|
|
383
|
+
1,
|
|
384
|
+
267
|
|
385
|
+
],
|
|
386
|
+
"915": [
|
|
387
|
+
2,
|
|
388
|
+
268
|
|
389
|
+
]
|
|
390
|
+
}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
namespace timezonefinder.flatbuf.generated.shortcuts_uint16;
|
|
2
|
+
|
|
3
|
+
// Table representing a unique zone ID (when all polygons in hex share same zone)
|
|
4
|
+
// Optimized for uint16 zone IDs (0-65535)
|
|
5
|
+
table UniqueZone {
|
|
6
|
+
// Direct zone ID storage - 2 bytes per zone ID
|
|
7
|
+
zone_id: ushort;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
// Table representing a list of polygon IDs (when hex contains multiple zones)
|
|
11
|
+
table PolygonList {
|
|
12
|
+
// List of polygon IDs (fixed uint16 as per requirement)
|
|
13
|
+
poly_ids: [ushort];
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
// Union type for the shortcut value - either unique zone or polygon list
|
|
17
|
+
union ShortcutValue {
|
|
18
|
+
UniqueZone,
|
|
19
|
+
PolygonList
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
// Individual shortcut entry mapping H3 hex ID to its value
|
|
23
|
+
table HybridShortcutEntry {
|
|
24
|
+
// H3 hexagon ID (uint64)
|
|
25
|
+
hex_id: ulong;
|
|
26
|
+
// The value for this hex - either unique zone or polygon list
|
|
27
|
+
value: ShortcutValue;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
// Root collection containing all shortcut entries
|
|
31
|
+
// Optimized for uint16 zone IDs - no metadata overhead
|
|
32
|
+
table HybridShortcutCollection {
|
|
33
|
+
// All shortcut entries
|
|
34
|
+
entries: [HybridShortcutEntry];
|
|
35
|
+
// encoding of the shortcut entries; see SHORTCUT_LAYOUT_VERSION in
|
|
36
|
+
// timezonefinder/flatbuf/io/hybrid_shortcuts.py. absent (= 0) in files written
|
|
37
|
+
// before the identifier and this marker were introduced.
|
|
38
|
+
layout_version: ushort;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
root_type HybridShortcutCollection;
|
|
42
|
+
|
|
43
|
+
// Distinct per zone id width on purpose: a uint16 buffer parsed under the other
|
|
44
|
+
// schema decodes UniqueZone.zone_id at the wrong width and yields wrong zone ids
|
|
45
|
+
// without failing, so the two must never be mistaken for one another.
|
|
46
|
+
file_identifier "TZS2";
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
namespace timezonefinder.flatbuf.generated.shortcuts_uint8;
|
|
2
|
+
|
|
3
|
+
// Table representing a unique zone ID (when all polygons in hex share same zone)
|
|
4
|
+
// Optimized for uint8 zone IDs (0-255)
|
|
5
|
+
table UniqueZone {
|
|
6
|
+
// Direct zone ID storage - 1 byte per zone ID
|
|
7
|
+
zone_id: ubyte;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
// Table representing a list of polygon IDs (when hex contains multiple zones)
|
|
11
|
+
table PolygonList {
|
|
12
|
+
// List of polygon IDs (fixed uint16 as per requirement)
|
|
13
|
+
poly_ids: [ushort];
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
// Union type for the shortcut value - either unique zone or polygon list
|
|
17
|
+
union ShortcutValue {
|
|
18
|
+
UniqueZone,
|
|
19
|
+
PolygonList
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
// Individual shortcut entry mapping H3 hex ID to its value
|
|
23
|
+
table HybridShortcutEntry {
|
|
24
|
+
// H3 hexagon ID (uint64)
|
|
25
|
+
hex_id: ulong;
|
|
26
|
+
// The value for this hex - either unique zone or polygon list
|
|
27
|
+
value: ShortcutValue;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
// Root collection containing all shortcut entries
|
|
31
|
+
// Optimized for uint8 zone IDs - no metadata overhead
|
|
32
|
+
table HybridShortcutCollection {
|
|
33
|
+
// All shortcut entries
|
|
34
|
+
entries: [HybridShortcutEntry];
|
|
35
|
+
// encoding of the shortcut entries; see SHORTCUT_LAYOUT_VERSION in
|
|
36
|
+
// timezonefinder/flatbuf/io/hybrid_shortcuts.py. absent (= 0) in files written
|
|
37
|
+
// before the identifier and this marker were introduced.
|
|
38
|
+
layout_version: ushort;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
root_type HybridShortcutCollection;
|
|
42
|
+
|
|
43
|
+
// Distinct per zone id width on purpose: a uint8 buffer parsed under the other
|
|
44
|
+
// schema decodes UniqueZone.zone_id at the wrong width and yields wrong zone ids
|
|
45
|
+
// without failing, so the two must never be mistaken for one another.
|
|
46
|
+
file_identifier "TZS1";
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
namespace timezonefinder.flatbuf.generated.polygons;
|
|
2
|
+
|
|
3
|
+
table Polygon {
|
|
4
|
+
// all x coordinates followed by all y coordinates, in a single vector
|
|
5
|
+
coords:[int];
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
table PolygonCollection {
|
|
9
|
+
polygons:[Polygon];
|
|
10
|
+
// encoding of the `coords` vectors; see POLYGON_LAYOUT_VERSION in
|
|
11
|
+
// timezonefinder/flatbuf/io/polygons.py. absent (= 0) in files written
|
|
12
|
+
// before the per-axis layout was introduced.
|
|
13
|
+
layout_version:ushort;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
root_type PolygonCollection;
|
|
17
|
+
file_identifier "TZFP";
|