Use Mapbox GL JS to visualize data in a Python Jupyter notebook

Overview
https://upload.wikimedia.org/wikipedia/commons/thumb/b/b4/Mapbox_Logo.svg/1280px-Mapbox_Logo.svg.png

Location Data Visualization library for Jupyter Notebooks

Build Status Coverage Status PyPI version

Library documentation at https://mapbox-mapboxgl-jupyter.readthedocs-hosted.com/en/latest/.

Create Mapbox GL JS data visualizations natively in Jupyter Notebooks with Python and Pandas. mapboxgl is a high-performance, interactive, WebGL-based data visualization tool that drops directly into Jupyter. mapboxgl is similar to Folium built on top of the raster Leaflet map library, but with much higher performance for large data sets using WebGL and Mapbox Vector Tiles.

https://cl.ly/3a0K2m1o2j1A/download/Image%202018-02-22%20at%207.16.58%20PM.png

Try out the interactive map example notebooks from the /examples directory in this repository

  1. Categorical points
  2. All visualization types
  3. Choropleth Visualization types
  4. Image Visualization types
  5. Raster Tile Visualization types

Installation

$ pip install mapboxgl

Documentation

Documentation is on Read The Docs at https://mapbox-mapboxgl-jupyter.readthedocs-hosted.com/en/latest/.

Usage

The examples directory contains sample Jupyter notebooks demonstrating usage.

import os

import pandas as pd

from mapboxgl.utils import create_color_stops, df_to_geojson
from mapboxgl.viz import CircleViz


# Load data from sample csv
data_url = 'https://raw.githubusercontent.com/mapbox/mapboxgl-jupyter/master/examples/data/points.csv'
df = pd.read_csv(data_url)

# Must be a public token, starting with `pk`
token = os.getenv('MAPBOX_ACCESS_TOKEN')

# Create a geojson file export from a Pandas dataframe
df_to_geojson(df, filename='points.geojson',
              properties=['Avg Medicare Payments', 'Avg Covered Charges', 'date'],
              lat='lat', lon='lon', precision=3)

# Generate data breaks and color stops from colorBrewer
color_breaks = [0,10,100,1000,10000]
color_stops = create_color_stops(color_breaks, colors='YlGnBu')

# Create the viz from the dataframe
viz = CircleViz('points.geojson',
                access_token=token,
                height='400px',
                color_property = "Avg Medicare Payments",
                color_stops = color_stops,
                center = (-95, 40),
                zoom = 3,
                below_layer = 'waterway-label'
              )
viz.show()

Development

Install the python library locally with pip:

$ pip install -e .

To run tests use pytest:

$ pip install mock pytest
$ python -m pytest

To run the Jupyter examples,

$ cd examples
$ pip install jupyter
$ jupyter notebook

We follow the PEP8 style guide for Python for all Python code.

Release process

  • After merging all relevant PRs for the upcoming release, pull the master branch
    • git checkout master
    • git pull
  • Update the version number in mapboxgl/__init__.py and push directly to master.
  • Tag the release
    • git tag <version>
    • git push --tags
  • Setup for pypi (one time only)
    • You'll need to pip install twine and set up your credentials in a ~/.pypirc file.
  • Create the release files
    • rm dist/* # clean out old releases if they exist
    • python setup.py sdist bdist_wheel
  • Upload the release files
    • twine upload dist/mapboxgl-*
Comments
  • Data does not show in JupyterLab from local geojson file resources

    Data does not show in JupyterLab from local geojson file resources

    I tried to reproduce the example given in the README with an OpenMapTiles style but the data does not show, I only see the tiles. This is the result:

    screenshot-2018-2-26 jupyterlab

    And this is the code:

    import pandas as pd
    import os
    
    from mapboxgl.utils import *
    from mapboxgl.viz import *
    
    # Load data from sample csv
    data_url = 'https://raw.githubusercontent.com/mapbox/mapboxgl-jupyter/master/examples/points.csv'
    df = pd.read_csv(data_url)
    
    # Create a geojson file export from a Pandas dataframe
    df_to_geojson(df, filename='points.geojson',
                  properties=['Avg Medicare Payments', 'Avg Covered Charges', 'date'],
                  lat='lat', lon='lon', precision=3)
    
    # Generate data breaks and color stops from colorBrewer
    color_breaks = [0,10,100,1000,10000]
    color_stops = create_color_stops(color_breaks, colors='YlGnBu')
    
    # Create the viz from the dataframe
    viz = CircleViz('points.geojson',
                    height='400px',
                    access_token='pk',
                    color_property = "Avg Medicare Payments",
                    color_stops = color_stops,
                    center = (-95, 40),
                    zoom = 3,
                    #below_layer = 'waterway-label',
                    style_url='https://openmaptiles.github.io/osm-bright-gl-style/style-cdn.json',
                  )
    viz.show()
    

    I'm using mapboxgl 0.5.1 installed with pip 9.0.1 in Python 3.4 and latest JupyterLab.

    enhancement 
    opened by astrojuanlu 17
  • Support vector tile source for additional viz types

    Support vector tile source for additional viz types

    Adds support for vector tile source for MapViz, CircleViz, GraduatedCircleViz and HeatmapViz via the VectorMixin class. Adds support for allowing JSON/GeoJSON join-data to be passed as data argument as a filename, URL, or dictionary. Closes #71.

    ready for review 
    opened by akacarlyann 15
  • Legend in Graduated Circle Viz only works when both color_property and radius_property specified

    Legend in Graduated Circle Viz only works when both color_property and radius_property specified

    I want to make a GraduatedCircleViz where the circles are sized by a column in a Pandas DataFrame. I don't have a secondary feature for which I'd like to vary the color.

    If I only specify radius_propery, the visualization is correct, but the Legend is not shown (works fine when a secondary color feature is specified)

    opened by Geo-C-Data 13
  • Variable radius legend

    Variable radius legend

    Adds support for a variable radius legend for the GraduatedCircleViz. Adds legend_function parameter for selecting between calcColorLegend and calcRadiusLegend in JavaScript. Addresses #80.

    opened by akacarlyann 12
  • Legend controls

    Legend controls

    Work in progress!

    • [x] adds legend parameter to MapViz to control legend visibility (defaults to True for all viz classes except HeatmapViz, RasterTilesViz and ImageViz)
    • [x] moves legend div creation to JS
    • [x] refine CSS style for default legend
    • [x] horizontal legend style
    • [x] continuous gradient legend

    Leave for separate pr:

    • variable radius legend

    May leave these for map-collections pr:

    • multi-layer legends
    • multi-variable legends
    opened by akacarlyann 12
  • Public documentation

    Public documentation

    As the API for mapboxgl-jupyter solidifies:

    To hit a 1.0 release, we need great documentation. Let's use this ticket to track docs to-dos:

    • [x] Create documentation generation framework
    • [ ] Doc content - viz types
    • [ ] Doc content - utilities
    • [ ] Doc content - web hosting

    cc/ @perrygeo

    help wanted release blocker 
    opened by ryanbaumann 12
  • Blank map on Google Colab, Jupyter on EC2 instance and Local (windows 10)

    Blank map on Google Colab, Jupyter on EC2 instance and Local (windows 10)

    My first baby steps with mapboxgl were no success. I get a blank map using Google Colab, Jupyter on Amazon EC2 and even running locally:

    https://gist.github.com/rutgerhofste/6aadc6835699762889296437e52280d5

    Am I doing something wrong or is the example no longer supported? Maybe you can add a troubleshooting section.

    UPDATE: Seems like the chloropleth example is broken. Other examples work just fine.

    opened by rutgerhofste 10
  • Save Map to HTML

    Save Map to HTML

    This is a feature request to save the map to file such that it could be subsequently served to a web browser, a la folium's save (see cell 3 in this example)

    enhancement 
    opened by sherl0cks 8
  • Streaming data architecture

    Streaming data architecture

    Investigate creating a streaming data architecture from a Pandas dataframe to a map using the approach in the Smalltalk python library https://github.com/murphy214/smalltalk.

    opened by ryanbaumann 8
  • Add graduated circle viz class, add auto HTML legends

    Add graduated circle viz class, add auto HTML legends

    @perrygeo @dnomadb

    • Adds GraduatedCircleViz support

    • Adds HTML legend support for continuous variable properties

    • Adds a utlity function for calculating circle-radius stops given a min/max range and data property values.

    • Updates example with the required points.csv file.

    Closes https://github.com/mapbox/mapboxgl-jupyter/issues/1

    opened by ryanbaumann 8
  • Mapbox Jupyter doesn't render ChoroplethViz

    Mapbox Jupyter doesn't render ChoroplethViz

    I've the following data and I'm trying to plot the Choropleth Viz using Mapbox Jupyter:

    data= {"type": "FeatureCollection", "features": [{"id": "0", "type": "Feature", "properties": {"ID": 1, "GRIDCODE": "2"}, "geometry": {"type": "Polygon", "coordinates": [[[-124.19626705829167, 41.99373103107739], [-124.201058326111, 41.9934289837606], [-124.20146339159642, 41.99700317753936], [-124.1990676349445, 41.99715424480156], [-124.1988651589845, 41.99536713917695], [-124.19646944995517, 41.99551814746546], [-124.19626705829167, 41.99373103107739]]]}}, {"id": "1", "type": "Feature", "properties": {"ID": 2, "GRIDCODE": "2"}, "geometry": {"type": "Polygon", "coordinates": [[[-124.15334355886935, 41.99822782049714], [-124.15094750259264, 41.99837788692177], [-124.15074636440538, 41.99659059233919], [-124.15054524444224, 41.99480329641264], [-124.15294116874556, 41.99465324869], [-124.15334355886935, 41.99822782049714]]]}}, {"id": "2", "type": "Feature", "properties": {"ID": 3, "GRIDCODE": "2"}, "geometry": {"type": "Polygon", "coordinates": [[[-124.13377326465698, 41.99585224227081], [-124.13856534983393, 41.995552791357824], [-124.13876613984962, 41.99734013399236], [-124.13397392268034, 41.99763960356722], [-124.13377326465698, 41.99585224227081]]]}}, {"id": "3", "type": "Feature", "properties": {"ID": 4, "GRIDCODE": "4"}, "geometry": {"type": "Polygon", "coordinates": [[[-124.13137719480609, 41.996001893351924], [-124.13377326465698, 41.99585224227081], [-124.13397392268034, 41.99763960356722], [-124.13157778683046, 41.99778926397471], [-124.13137719480609, 41.996001893351924]]]}}, {"id": "4", "type": "Feature", "properties": {"ID": 5, "GRIDCODE": "5"}, "geometry": {"type": "Polygon", "coordinates": [[[-124.12898110678809, 41.996151494848036], [-124.13137719480609, 41.996001893351924], [-124.13157778683046, 41.99778926397471], [-124.12918163281154, 41.99793887479414], [-124.12898110678809, 41.996151494848036]]]}}, {"id": "5", "type": "Feature", "properties": {"ID": 6, "GRIDCODE": "2"}, "geometry": {"type": "Polygon", "coordinates": [[[-124.131176620957, 41.99421452138939], [-124.13357262481475, 41.99406487963413], [-124.13377326465698, 41.99585224227081], [-124.13137719480609, 41.996001893351924], [-124.131176620957, 41.99421452138939]]]}}, {"id": "6", "type": "Feature", "properties": {"ID": 7, "GRIDCODE": "3"}, "geometry": {"type": "Polygon", "coordinates": [[[-124.12878059893404, 41.994364113562696], [-124.131176620957, 41.99421452138939], [-124.13137719480609, 41.996001893351924], [-124.12898110678809, 41.996151494848036], [-124.12878059893404, 41.994364113562696]]]}}, {"id": "7", "type": "Feature", "properties": {"ID": 8, "GRIDCODE": "4"}, "geometry": {"type": "Polygon", "coordinates": [[[-124.12878059893404, 41.994364113562696], [-124.12898110678809, 41.996151494848036], [-124.12418887627409, 41.99645054908096], [-124.12398850041586, 41.99466314915913], [-124.12878059893404, 41.994364113562696]]]}}, {"id": "8", "type": "Feature", "properties": {"ID": 9, "GRIDCODE": "3"}, "geometry": {"type": "Polygon", "coordinates": [[[-124.12618413505629, 41.992726264209224], [-124.12858010924755, 41.992576730938204], [-124.12878059893404, 41.994364113562696], [-124.12398850041586, 41.99466314915913], [-124.12418887627409, 41.99645054908096], [-124.12179273378982, 41.99660000181562], [-124.12159242393231, 41.99481259258014], [-124.11919632930696, 41.9949619864149], [-124.1189961035962, 41.99317456653169], [-124.12618413505629, 41.992726264209224]]]}}, {"id": "9", "type": "Feature", "properties": {"ID": 10, "GRIDCODE": "2"}, "geometry": {"type": "Polygon", "coordinates": [[[-124.02254750546336, 41.99374589981529], [-124.024944056708, 41.993598527051816], [-124.02514165333511, 41.99538631160286], [-124.02274503603581, 41.99553369355296], [-124.02254750546336, 41.99374589981529]]]}}]}
    
    from mapboxgl.viz import *
    from mapboxgl.utils import *
    
    
    token = 'public token'
    
    viz = ChoroplethViz(data, 
                        access_token=token)
    viz.show()
    

    The output comes out empty as below.

    Screenshot 2019-06-21 at 11 50 36 AM

    When I try the same data using http://geojson.io

    I get the following output.

    Screenshot 2019-06-21 at 11 52 04 AM

    Am I missing something when plotting in Mapbox?

    Any help would be appreciated. Thank you.

    opened by samirak93 7
  • Mapboxgl cannot be imported on Windows 10 after conda install

    Mapboxgl cannot be imported on Windows 10 after conda install

    I installed mapboxgl from conda-forge, but when I try to import it (or anything from it), I get the following error:

    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "C:\Users\manow\miniconda3\envs\py37_test\lib\site-packages\mapboxgl\__init__.py", line 1, in <module>
        from .viz import CircleViz, GraduatedCircleViz, HeatmapViz, ClusteredCircleViz, ImageViz, RasterTilesViz, ChoroplethViz, LinestringViz
      File "C:\Users\manow\miniconda3\envs\py37_test\lib\site-packages\mapboxgl\viz.py", line 12, in <module>
        from mapboxgl import templates
      File "C:\Users\manow\miniconda3\envs\py37_test\lib\site-packages\mapboxgl\templates.py", line 4, in <module>
        loader=PackageLoader('mapboxgl', 'templates'),
      File "C:\Users\manow\miniconda3\envs\py37_test\lib\site-packages\jinja2\loaders.py", line 324, in __init__
        f"The {package_name!r} package was not installed in a"
    ValueError: The 'mapboxgl' package was not installed in a way that PackageLoader understands.
    
    opened by DManowitz 0
  • Add manifest including non-Python files too

    Add manifest including non-Python files too

    Ref: https://docs.python.org/3/distutils/sourcedist.html#manifest

    Sometimes this is enough, but usually you will want to specify additional files to distribute. The typical way to do this is to write a manifest template, called MANIFEST.in by default. The manifest template is just a list of instructions for how to generate your manifest file, MANIFEST, which is the exact list of files to include in your source distribution. The sdist command processes this template and generates a manifest based on its instructions and what it finds in the filesystem.

    After this change, when I test with:

    (venv) $ python setup.py sdist
    

    The generated dist archive contains the template files. Without the manifest the sdist produced doesn't include the templates folder, probably because it doesn't have any Python files.

    I think this PR should fix:

    • https://github.com/mapbox/mapboxgl-jupyter/issues/163
    • https://github.com/conda-forge/mapboxgl-feedstock/issues/2

    Thank you! -Bruno

    opened by kinow 0
  • Uncaught Error: An API access token is required to use Mapbox GL.

    Uncaught Error: An API access token is required to use Mapbox GL.

    I'm using mapboxgl in python, after i entered my API token "token = os.getenv('pk.eyJ1IjoiYnJ5YW5lZW8iLCJhIjoiY2t4aXF3a2I3MGQ1aTJycWtrYXgxNjJwdCJ9xxxxxxxxx')" for reference purposes. I got the error saying that an API access token is required.

    Does anyone knows what seems to be the issue?

    opened by EeoBryan 0
  • Update viz.py

    Update viz.py

    In response to #168 To avoid the error : UserWarning: Consider using IPython.display.IFrame instead warnings.warn("Consider using IPython.display.IFrame instead") you can now call: viz.show(True) to show a jupyter notebook iframe instead of HTML. Default value set to false to provide full backwards combability.

    opened by buzzCraft 1
  • viz.create_html() rounds lat/lng to 4 decimal places which drops accuracy to 11m

    viz.create_html() rounds lat/lng to 4 decimal places which drops accuracy to 11m

    This is the difference between this:

    Screen Shot 2021-05-31 at 3 37 04 pm

    And this:

    Screen Shot 2021-05-31 at 3 38 20 pm

    This is happening here: https://github.com/mapbox/mapboxgl-jupyter/blob/9a15a0759db5b0c5dc8d59f4a8e0d77b9c378daf/mapboxgl/viz.py#L281

    I'm attempting to solve this by passing in a decimal rather than a float when building my FeatureCollection:

        features.append(Feature(
            geometry=Point((Decimal(m['lng']), Decimal(m['lat']))),
        ))
    

    You can monkey patch this like this:

    import json
    import decimal
    
    class FullJSONEncoder(json.JSONEncoder):
        def default(self, o):
            if isinstance(o, decimal.Decimal):
                return str(o)
            return super().default(o)
    
    default_props = {'cls': FullJSONEncoder, 'skipkeys': False, 'check_circular': False, 'allow_nan': False, 'indent': False, 'separators': None, 'default': None, 'sort_keys': False, 'ensure_ascii': False}
    with patch.object(json.dumps, '__kwdefaults__', default_props):
        ...
    
    opened by aidanlister 0
Releases(0.10.2)
  • 0.10.2(Jun 3, 2019)

    • Upgrade to GL JS v1.0.0 to support Map Load pricing. Map Load pricing should reduce customer billing for BI & Analytics use cases by charging the same for each map session, regardless of how many map tiles are loaded. More details here https://www.mapbox.com/pricing/
    • Added support for line-opacity in Choropleth viz https://github.com/mapbox/mapboxgl-jupyter/pull/157
    Source code(tar.gz)
    Source code(zip)
  • 0.10.1(Feb 16, 2019)

    New Features

    • Adds map snapshot option to save your viz directly to an image. Add the add_snapshot_links=True parameter to your viz object to see the options.

    • Adds hover/highlight styles using the highlight_color parameter on Circle, GraduatedCircle, Linestring, Cluster, and Choropleth (and their vector tile equivalent) layers. The default highlight_color is black. Customize the highlight_color in your viz by passing it as a parameter:
    viz = CircleViz(data, access_token=token, highlight_color='red')
    viz.show()
    

    • Adds support for identity function for height_function_type and color_function_type. This is useful for stying features in your layer from a specific property in your data or vector tile, such as building height or extrusion height.

    Upgrades

    • Upgrades to Mapbox GL JS v0.53.0
    Source code(tar.gz)
    Source code(zip)
  • 0.10.0(Nov 27, 2018)

    New Features

    • Added DateTime serialization from Pandas dataframes using the df_to_geojson function, for use in viz tooltips - https://github.com/mapbox/mapboxgl-jupyter/pull/140
    • Add argument to control popup behavior on click or mouseover - https://github.com/mapbox/mapboxgl-jupyter/pull/139
    • Add new option to support exporting a map viz and legend to a PNG image for creating static reports - https://github.com/mapbox/mapboxgl-jupyter/pull/137

    Upgrades

    • Upgrade Mapbox GL JS to v0.51.0

    Bug Fixes

    • Fix df_to_geojson function on Pandas dataframes with non-sequential indicies - https://github.com/mapbox/mapboxgl-jupyter/pull/132
    Source code(tar.gz)
    Source code(zip)
  • 0.9.0(Sep 18, 2018)

    New Features

    • Upgrade to GL JS v0.49.0
    • Added utils functions for converting geoPandas objects to geojson https://github.com/mapbox/mapboxgl-jupyter/pull/122
    • Add boolean options for zoom behavior https://github.com/mapbox/mapboxgl-jupyter/pull/119
    Source code(tar.gz)
    Source code(zip)
  • 0.8.0(Jul 22, 2018)

    Features

    • Greatly improved legend options for all visuals https://github.com/mapbox/mapboxgl-jupyter/pull/100

    Bugs

    • Default line width fix for linestring visual https://github.com/mapbox/mapboxgl-jupyter/pull/109
    • Upgraded to GL JS v0.47.0 https://github.com/mapbox/mapboxgl-jupyter/pull/117
    • Fixed choropleth example https://github.com/mapbox/mapboxgl-jupyter/pull/104
    Source code(tar.gz)
    Source code(zip)
  • 0.7.3(May 14, 2018)

  • 0.7.1(Apr 26, 2018)

  • 0.7.0(Apr 26, 2018)

    New Features

    • Add support for Linestring visualizations! 🚥 #92 @akacarlyann
    • Add support for 3D Extrusions in Choropleth Visualizations! 🏗 #90 @akacarlyann

    Bug Fixes

    • Fix choropleth with large number of numeric stops #94
    • Fix bug with not tagging Mapbox Tile URLS with Parameter #95
    Source code(tar.gz)
    Source code(zip)
  • 0.6.0(Mar 29, 2018)

    Breaking changes

    • The Viz style_url property is now just style to reflect that a local style sheet may be used, not just a URL

    New Features

    • Add Raster Tile Viz class https://github.com/mapbox/mapboxgl-jupyter/pull/63
    • Add Image viz class https://github.com/mapbox/mapboxgl-jupyter/pull/61
    • Enable custom and local mapboxgl style sheets https://github.com/mapbox/mapboxgl-jupyter/pull/59
    • Added Choropleth Viz support, including data-joins from remote vector tile sources https://github.com/mapbox/mapboxgl-jupyter/pull/40

    Improvements

    • Adds label_size, label_color, label_halo_color, label_halo_width, stroke_color, stroke_width properties to all Circle* Viz types
    • Improves default style options for circle* viz types
    • Adds heatmap_intensity style option
    • Removes requirement for any style options to be passed to create a valid Heatmap viz
    • Removes requirement for any style options to be passed to create a valid Circle* viz
    • Changes default interpolation expression to use an exponential function with base 1.2
    • Organized examples in directory

    Bug fixes

    • A list of colors (custom color palettes) now work with utils.create_color_stops() https://github.com/mapbox/mapboxgl-jupyter/pull/52
    • The radius_default value for GraduatedCircleViz is now set to 1 instead of None #72
    • utils.df_to_geojson() now coverts data row-by-row, saving massive amounts of memory when converting large dataframes to geojson files. https://github.com/mapbox/mapboxgl-jupyter/pull/69
    Source code(tar.gz)
    Source code(zip)
  • 0.5.1(Feb 23, 2018)

  • 0.1.5(Feb 23, 2018)

    • Added markdown documentation. @markmisener
      • Visuals: https://github.com/mapbox/mapboxgl-jupyter/blob/master/docs-markdown/viz.md
      • Utilities: https://github.com/mapbox/mapboxgl-jupyter/blob/master/docs-markdown/utils.md
    • Increased performance and type-safe export of all Pandas data frame data types to geojson using df_to_geojson.
    Source code(tar.gz)
    Source code(zip)
  • 0.1.4(Feb 3, 2018)

    • Fix bug requesting non-Mapbox API url resources
    • Fix bug zooming out when clicking on a data point
    • Big code refactoring in viz.py 🙏 @akacarlyann
    • Byline geojson output for df_to_geojson utility function when a filename is specified. See the latest example at www.mapbox.com/labs/jupyter for an example of how to use this function to make a distributable visualization outside of Jupyter.
    Source code(tar.gz)
    Source code(zip)
  • 0.1.2(Jan 28, 2018)

    • Added support for categorical data in circle visualizations - check out the example https://github.com/mapbox/mapboxgl-jupyter/pull/35. Thanks @akacarlyann!
    • Upgraded to Mapbox GL JS 0.44, greatly improving zoom performance and removing CSP requirements for unsafe-eval
    Source code(tar.gz)
    Source code(zip)
Owner
Mapbox
Mapbox is the location data platform for mobile and web applications. We're changing the way people move around cities and explore our world.
Mapbox
Location field and widget for Django. It supports Google Maps, OpenStreetMap and Mapbox

django-location-field Let users pick locations using a map widget and store its latitude and longitude. Stable version: django-location-field==2.1.0 D

Caio Ariede 481 Dec 29, 2022
OSMnx: Python for street networks. Retrieve, model, analyze, and visualize street networks and other spatial data from OpenStreetMap.

OSMnx OSMnx is a Python package that lets you download geospatial data from OpenStreetMap and model, project, visualize, and analyze real-world street

Geoff Boeing 4k Jan 8, 2023
Python library to visualize circular plasmid maps

Plasmidviewer Plasmidviewer is a Python library to visualize plasmid maps from GenBank. This library provides only the function to visualize circular

Mori Hideto 9 Dec 4, 2022
leafmap - A Python package for geospatial analysis and interactive mapping in a Jupyter environment.

A Python package for geospatial analysis and interactive mapping with minimal coding in a Jupyter environment

Qiusheng Wu 1.4k Jan 2, 2023
A Jupyter - Leaflet.js bridge

ipyleaflet A Jupyter / Leaflet bridge enabling interactive maps in the Jupyter notebook. Usage Selecting a basemap for a leaflet map: Loading a geojso

Jupyter Widgets 1.3k Dec 27, 2022
Google maps for Jupyter notebooks

gmaps gmaps is a plugin for including interactive Google maps in the IPython Notebook. Let's plot a heatmap of taxi pickups in San Francisco: import g

Pascal Bugnion 747 Dec 19, 2022
GeoNode is an open source platform that facilitates the creation, sharing, and collaborative use of geospatial data.

Table of Contents What is GeoNode? Try out GeoNode Install Learn GeoNode Development Contributing Roadmap Showcase Most useful links Licensing What is

GeoNode Development Team 1.2k Dec 26, 2022
Open Data Cube analyses continental scale Earth Observation data through time

Open Data Cube Core Overview The Open Data Cube Core provides an integrated gridded data analysis environment for decades of analysis ready earth obse

Open Data Cube 410 Dec 13, 2022
A public data repository for datasets created from TransLink GTFS data.

TransLink Spatial Data What: TransLink is the statutory public transit authority for the Metro Vancouver region. This GitHub repository is a collectio

Henry Tang 3 Jan 14, 2022
Using Global fishing watch's data to build a machine learning model that can identify illegal fishing and poaching activities through satellite and geo-location data.

Using Global fishing watch's data to build a machine learning model that can identify illegal fishing and poaching activities through satellite and geo-location data.

Ayush Mishra 3 May 6, 2022
A Django application that provides country choices for use with forms, flag icons static files, and a country field for models.

Django Countries A Django application that provides country choices for use with forms, flag icons static files, and a country field for models. Insta

Chris Beaven 1.2k Jan 3, 2023
Construct and use map tile grids in different projection.

Morecantile +-------------+-------------+ ymax | | | | x: 0 | x: 1 | | y: 0 | y: 0

Development Seed 67 Dec 23, 2022
How to use COG's (Cloud optimized GeoTIFFs) with Rasterio

How to use COG's (Cloud optimized GeoTIFFs) with Rasterio According to Cogeo.org: A Cloud Opdtimized GeoTIFF (COG) is a regular GeoTIFF file, aimed at

Marvin Gabler 8 Jul 29, 2022
A ready-to-use curated list of Spectral Indices for Remote Sensing applications.

A ready-to-use curated list of Spectral Indices for Remote Sensing applications. GitHub: https://github.com/davemlz/awesome-ee-spectral-indices Docume

David Montero Loaiza 488 Jan 3, 2023
Creates 3D geometries from 2D vector graphics, for use in geodynamic models

geomIO - creating 3D geometries from 2D input This is the Julia and Python version of geomIO, a free open source software to generate 3D volumes and s

null 3 Feb 1, 2022
Python Data. Leaflet.js Maps.

folium Python Data, Leaflet.js Maps folium builds on the data wrangling strengths of the Python ecosystem and the mapping strengths of the Leaflet.js

null 6k Jan 2, 2023
Python tools for geographic data

GeoPandas Python tools for geographic data Introduction GeoPandas is a project to add support for geographic data to pandas objects. It currently impl

GeoPandas 3.5k Jan 3, 2023
A package built to support working with spatial data using open source python

EarthPy EarthPy makes it easier to plot and manipulate spatial data in Python. Why EarthPy? Python is a generic programming language designed to suppo

Earth Lab 414 Dec 23, 2022
Python package for earth-observing satellite data processing

Satpy The Satpy package is a python library for reading and manipulating meteorological remote sensing data and writing it to various image and data f

PyTroll 882 Dec 27, 2022