Skip to content

Repository files navigation

Python Versions License: GPL v3 pre-commit Language grade: Python Documentation Status

codecov GitHub last commit GitHub forks GitHub Repo stars

Current release info

Name Downloads Version Platforms
Conda Recipe Conda Downloads Downloads Downloads Downloads PyPI - Downloads GitHub all releases GitHub release (latest by date) Conda Version PyPI version Anaconda-Server Badge Conda Platforms Join the chat at https://gitter.im/Hapi-Nile/Hapi

digitalearth - Remote Sensing package

digitalearth is a Remote Sensing package

digitalearth

Main Features

  • plot static maps

Future work

  • dynamic/interactive maps

Installing digitalearth

Installing digitalearth from the conda-forge channel can be achieved by:

conda install -c conda-forge digitalearth

It is possible to list all of the versions of digitalearth available on your platform with:

conda search digitalearth --channel conda-forge

Install from Github

to install the last development to time you can install the library from github

pip install git+https://github.com/serapeum-org/Digital-Earth

pip

to install the last release you can easly use pip

pip install digitalearth

Optional rendering tiers

The static matplotlib tier works out of the box. Richer renderers are optional extras (installed only when you ask for them):

pip install 'digitalearth[interactive]'   # interactive 2-D web maps (HoloViz: GeoViews/Bokeh)
pip install 'digitalearth[3d]'            # true-3D scenes (PyVista)
pip install 'digitalearth[web]'           # MapLibre + deck.gl web maps, shareable HTML

The 3d extra installs pyvista[jupyter], because that extra is the trame/vtk.js stack Scene3D.export_html renders through and pyvista redefines it per version. It brings a notebook stack along with it (ipywidgets, and jupyter-server-proxy on pyvista 0.48) even for headless use.

The web tier renders pyramids rasters/vectors as MapLibre GL JS / deck.gl layers and exports a self-contained HTML page — WebMap().choropleth(gdf, column="pop").basemap().save("map.html"), or quickplot(data, backend="web"). The runnable gallery in docs/examples/web/ works through a raster, a choropleth, the decoration stack (legend, title, graticule, layer switcher), framing with set_bounds, labels and free text, contours and an RGB composite.

What the web tier is for. Thematic maps (choropleths, points, lines, heatmaps, clustering), 3-D (extrusions, point clouds, 3D tiles, glTF, terrain, globe), and sharing the result as one HTML file. It is not a peer of the static tier for scientific field rendering: contours are supported, but vector/flow fields (quiver, barbs, streamplot), unstructured meshes (tripcolor, trimesh, quadmesh) and KDE have no native MapLibre primitive and live in the static and interactive tiers instead.

Quick start

The entry points are quickmap (one call) and the Map scene. Build a finished map from a raster and save it:

from pyramids.dataset import Dataset
from digitalearth import quickmap

src = Dataset.read_file("examples/data/acc4000.tif")
m = quickmap(src, crs=src.epsg)   # finished Map with a colorbar
m.set_title("Flow Accumulation")
m.save("flow_accumulation.png")

Flowaccumulation

For more control, compose layers on a Map directly — e.g. overlay points on a raster:

from pyramids.dataset import Dataset
from pyramids.feature import FeatureCollection
from digitalearth import Map

src = Dataset.read_file("examples/data/acc4000.tif")
points = FeatureCollection.read_file("tests/data/points.geojson")

m = Map(crs=src.epsg)
m.field(src)
m.points(points)
m.colorbar(layer=0)
m.set_title("Flow Accumulation")
m.save("flow_accumulation_with_labels.png")

Flowaccumulation

other code samples

Releases

Packages

Used by

Contributors

Languages