Commit Graph

65 Commits

Author SHA1 Message Date
Brandon Liu
63182e525d rio-pmtiles python package [#338] (#542)
Add rio-pmtiles command line tool. [#338]

This is derived from the original mapbox/rio-mbtiles implementation, with changes:

* output PMTiles only instead of MBTiles.
* Python 3.7+ only.
* remove --implementation, --image-dump, --append/--overwrite, --covers features.
* bump dependency versions.
* better progress reporting; add pyroaring. 
* update README and license texts.
* rio-pmtiles v0.0.6 on PyPI
2025-03-24 20:50:53 +08:00
Taku Fukada
9b69ab4b64 Simplify and optimize Hilbert tile ID <-> XYZ conversion (#527)
* Optimize Hilbert tile ID <-> XYZ conversion

* biome

* tile_id: more improvements

* tile_id(cpp): uint32
2025-02-21 15:37:49 +08:00
Lars Maxfield
28960a9e6f Fix #478 with correct y-flip logic where the default is y=0 at top; add 'tms' scheme for zxy with flipped y (#479) 2024-10-12 13:08:44 +08:00
Lars Maxfield
579cd7a2a4 Add disk_to_pmtiles: Convert a directory of tiles to pmtiles (#431)
Add disk_to_pmtiles CLI command and function for converting raster image pyramids to PMTiles.
2024-08-12 17:33:33 +08:00
Jesse Crocker
206be682c7 Remove print statements (#364) 2024-02-21 12:33:18 +08:00
Gabor Simko
ea1657d8fe fix reader.py reading all the tiles (#357)
* fix reader.py reading all the tiles

* add unit test

---------

Co-authored-by: Gabor Simko <gsimko3@gmail.com>
2024-02-10 11:40:06 +08:00
Daniel J. H
dd76720bef Fixes units in Python writer default bounds (#311)
When there are no user-provided bounds provided in the writer
(as in: min/max_lat/lng_e7 properties) the writer mistakenly
defaults to -180,-90,180,90 for these properties.

e1228f5df1/python/pmtiles/tile.py (L277-L283)

But these properties need to be multiplied by 10000000 as
seen e.g. in this examples and as indicated by the "_e7"

e1228f5df1/python/examples/create_raster_example.py (L29-L32)

Without this fix we were seeing pmtiles with bounds around null
island, because the order of magnitude was wrong.
2023-12-15 15:21:39 +08:00
François BAPTISTE
6a4a403942 fix NameError: name 'data' is not defined in convert.py (#220) 2023-07-20 16:32:34 +08:00
Brandon Liu
8ebcbf53c3 python: use NONE instead of UNKNOWN for compression when converting from MBTiles [#139] 2023-06-23 14:14:03 +08:00
Brandon Liu
d6399365a1 Merge pull request #193 from rouault/python_convert_gzip_tile_compression
Python: mbtiles_to_pmtiles(): set tile_compression = gzip when converting from MVT MBTiles
2023-06-23 13:47:02 +08:00
Brandon Liu
651e3ce5f4 Merge pull request #206 from protomaps/python-writer-improvements
python writer improvements
2023-06-23 11:39:51 +08:00
Brandon Liu
ce4c930439 Merge pull request #205 from protomaps/avif
python and C++ AVIF enums [#116]
2023-06-23 11:39:39 +08:00
Brandon Liu
1940b4eff6 python writer improvements
* flesh out roundtrip test case
* detect unordered tile writes and set clustered flag appropriately [#115]
2023-06-23 11:18:07 +08:00
Brandon Liu
3d1517a73a python and C++ AVIF enums [#116] 2023-06-23 11:07:18 +08:00
Brandon Liu
c6dbd0e4fd python pmtiles-to-mbtiles: lift vector_layers and tilestats into json metadata key [#120] 2023-06-22 15:34:38 +08:00
Even Rouault
8f9feca6e9 Python: mbtiles_to_pmtiles(): set tile_compression = gzip when converting from MVT MBTiles 2023-06-09 19:36:02 +02:00
Even Rouault
021267c67b Python: mbtiles_to_pmtiles(): patch maxzoom metadata when using maxzoom option 2023-06-09 19:30:21 +02:00
Brandon Liu
fec0d1136c Merge pull request #185 from geospatial-jeff/179-header-dry
reuse `Reader.header`
2023-05-29 17:04:19 +08:00
Brandon Liu
2613ef1047 Merge pull request #186 from geospatial-jeff/180-header-include-version
deserialize_header returns pmtiles version
2023-05-29 11:22:26 +08:00
geospatial-jeff
ba7bc0e24e deserialize_header returns pmtiles version 2023-05-28 09:46:27 -06:00
geospatial-jeff
fc27e525cd reuse Reader.header 2023-05-28 09:43:16 -06:00
geospatial-jeff
c9e0c9d019 open mmap with ACCESS_READ 2023-05-28 09:41:08 -06:00
nokonoko1203
9144d00a86 Add processing before inserting into the MBTiles metadata table. 2023-02-15 17:00:22 +09:00
fscottfoti
681526a370 <= was in the JS, < was in the python 2023-01-28 13:19:48 -08:00
Brandon Liu
78cde0d51f python: raise errors in overflow and invalid tile ID cases 2022-12-22 21:56:23 +08:00
Brandon Liu
cd1374cc33 python: fix magic number in writer, assert current spec version and magic number in reader 2022-11-01 17:24:29 +08:00
Brandon Liu
5a636313e9 python convert print output more correct : entry > addressed tile 2022-10-18 20:30:16 +08:00
Brandon Liu
819a0e6f2b python: default to max dir depth 3, don't default compression in writer 2022-10-16 12:33:39 +08:00
Brandon Liu
b1c7cf59a3 implement pmtiles-to-mbtiles and pmtiles-to-dir conversions; don't delete redundant metadata keys (center, minzoom, etc) 2022-10-13 19:23:57 +08:00
Brandon Liu
5e400b0dbd python: string repr for entries 2022-10-13 19:23:57 +08:00
Brandon Liu
eae1d3a11d python writer: fix bug in construction of leaf dir entries 2022-10-13 19:23:57 +08:00
Brandon Liu
b89bf951bb replace python reader with v3 reader 2022-10-13 19:23:57 +08:00
Brandon Liu
0f03dc3312 python: pmtiles-convert from mbtiles writes v3 spec 2022-10-12 00:02:59 +08:00
Brandon Liu
b1cfa7da24 python v3: serialize/deserialize header 2022-10-11 16:58:42 +08:00
Brandon Liu
904031a85e python client: implement v3 directory serialization/deserialization 2022-10-11 15:57:15 +08:00
Brandon Liu
6087d89391 initial implementations of python v3 utility functions 2022-10-11 13:58:08 +08:00
Brandon Liu
8de8a87e06 Merge pull request #55 from bayre/patch-1
Adopt Reader, MmapSource in pmtiles_to_dir
2022-07-19 00:53:14 +08:00
Brandon Liu
de687baf61 python reader: fix leaf level querying 2022-07-18 21:00:46 +08:00
Ben Ayre
4ddda66498 Adopt Reader, MmapSource in pmtiles_to_dir 2022-07-13 08:48:44 +01:00
Brandon Liu
80c0e2b436 Python API changed to do I/O in larger blocks 2022-07-07 21:57:28 +08:00
Brandon Liu
3811ff9b1b js decoder 1.1.0
adds fflate dependency; maplibre decoder can read gzipped tiles [#41]
2022-07-07 12:36:16 +08:00
Brandon Liu
3944d27833 refactor python reader to take a get_bytes function; add reader tests [#38] 2022-04-26 16:15:03 +08:00
fscottfoti
ed40933563 reformat with black 2022-04-09 12:44:54 -07:00
Brandon Liu
cd5ebcccc9 python writer correctly handles sparse pyramids where leaf parent tile missing [#37] 2022-03-20 18:24:08 +08:00
Brandon Liu
df8256f10b python writer: fix logical error when a packed leaf directory overflows [#37] 2022-03-20 18:20:56 +08:00
Brandon Liu
c9b0ddc558 python reader can read v2 archives (non-fixed leaf level) [#36] 2022-03-17 15:50:17 +08:00
Brandon Liu
7fe6325c74 refactor of python writer; separate pyramid building from i/o 2022-02-28 10:59:02 +08:00
Brandon Liu
94e3ef2765 fix writing of sorted leaf directories in python [#34] 2022-02-26 22:18:16 +08:00
Brandon Liu
827560bc74 python library writes spec v2; bump 1.1.0 2022-02-18 11:41:27 +08:00
Brandon Liu
bfa8d178a6 Merge pull request #23 from eddy-geek/smart_base_zoom
writer: Leaf directories: Find best base zoom
2022-02-07 23:38:55 +08:00