Skip to content

enable geojson file output from TilePyramid, maybe add to CLI #50

Open
@Scartography

Description

@Scartography

E.G.:

import geojson
from tilematrix import GridDefinition, TilePyramid

mollweide_bounds = (-18041000.0, -9000000.0, 18041000.0, 9000000.0)

# import math
# print(math.gcd(int(mollweide_bounds[2]), int(mollweide_bounds[3])))

mollweide_10m_grid = GridDefinition(
    grid="custom", shape=(9000, 18041), is_global=True,
    bounds=mollweide_bounds,
    srs={'wkt': 'PROJCS["World_Mollweide",GEOGCS["GCS_WGS_1984",DATUM["WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Mollweide"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",0],UNIT["Meter",1],AUTHORITY["EPSG","54009"]]'}
    )

# print(mollweide_10m_grid)

mollweide_10m_tmx = TilePyramid(grid=mollweide_10m_grid, tile_size=200, metatiling=16)

print(mollweide_10m_tmx)

print(f"pixel_x_size: {mollweide_10m_tmx.pixel_x_size(zoom=0)}")
print(f"pixel_y_size: {mollweide_10m_tmx.pixel_y_size(zoom=0)}")


mollweide_100m_tmx = TilePyramid(grid=mollweide_10m_grid, tile_size=20, metatiling=16)

print(mollweide_100m_tmx)


print(f"pixel_x_size: {mollweide_100m_tmx.pixel_x_size(zoom=0)}")
print(f"pixel_y_size: {mollweide_100m_tmx.pixel_y_size(zoom=0)}")


mollweide_1000m_tmx = TilePyramid(grid=mollweide_10m_grid, tile_size=2, metatiling=16)

print(mollweide_1000m_tmx)


print(f"pixel_x_size: {mollweide_1000m_tmx.pixel_x_size(zoom=0)}")
print(f"pixel_y_size: {mollweide_1000m_tmx.pixel_y_size(zoom=0)}")



with open("/mnt/data/mollweide100m.geojson", "w") as f:
    f.write("{\n" '"type": "FeatureCollection",')
    f.write("\n" '"crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:ESRI::54009" } },')
    f.write("\n" '"features": [')
    for tile in mollweide_100m_tmx.tiles_from_bounds(zoom=0, bounds=mollweide_bounds):
        gj = "    %s,\n" % geojson.Feature(
            geometry=tile.bbox(),
            properties=dict(zoom=tile.zoom, row=tile.row, col=tile.col),
        )
        f.write(gj)
    f.write("]\n" "}")

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions