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
Starlite-tile38 - Showcase using Tile38 via pyle38 in a Starlite application

Starlite-Tile38 Showcase using Tile38 via pyle38 in a Starlite application. Repo

Ben 8 Aug 07, 2022
Wraps GEOS geometry functions in numpy ufuncs.

PyGEOS PyGEOS is a C/Python library with vectorized geometry functions. The geometry operations are done in the open-source geometry library GEOS. PyG

362 Dec 23, 2022
This program analizes films database with adresses, and creates a folium map with closest films to the coordinates

Films-map-project UCU CS lab 1.2, 1st year This program analizes films database with adresses, and creates a folium map with closest films to the coor

Artem Moskovets 1 Feb 09, 2022
python toolbox for visualizing geographical data and making maps

geoplotlib is a python toolbox for visualizing geographical data and making maps data = read_csv('data/bus.csv') geoplotlib.dot(data) geoplotlib.show(

Andrea Cuttone 976 Dec 11, 2022
Extract GoPro highlights and GPMF data.

Python script that parses the gpmd stream for GOPRO moov track (MP4) and extract the GPS info into a GPX (and kml) file.

Chris Auron 2 May 13, 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 02, 2023
Program that shows all the details of the given IP address. Build with Python and ipinfo.io API

ip-details This is a program that shows all the details of the given IP address. Build with Python and ipinfo.io API Usage To use this program, run th

4 Mar 01, 2022
Spatial Interpolation Toolbox is a Python-based GUI that is able to interpolate spatial data in vector format.

Spatial Interpolation Toolbox This is the home to Spatial Interpolation Toolbox, a graphical user interface (GUI) for interpolating geographic vector

Michael Ward 2 Nov 01, 2021
Use Mapbox GL JS to visualize data in a Python Jupyter notebook

Location Data Visualization library for Jupyter Notebooks Library documentation at https://mapbox-mapboxgl-jupyter.readthedocs-hosted.com/en/latest/.

Mapbox 620 Dec 15, 2022
A utility to search, download and process Landsat 8 satellite imagery

Landsat-util Landsat-util is a command line utility that makes it easy to search, download, and process Landsat imagery. Docs For full documentation v

Development Seed 681 Dec 07, 2022
Stitch image tiles into larger composite TIFs

untiler Utility to take a directory of {z}/{x}/{y}.(jpg|png) tiles, and stitch into a scenetiff (tif w/ exact merc tile bounds). Future versions will

Mapbox 38 Dec 16, 2022
Simple CLI for Google Earth Engine Uploads

geeup: Simple CLI for Earth Engine Uploads with Selenium Support This tool came of the simple need to handle batch uploads of both image assets to col

Samapriya Roy 79 Nov 26, 2022
Python interface to PROJ (cartographic projections and coordinate transformations library)

pyproj Python interface to PROJ (cartographic projections and coordinate transformations library). Documentation Stable: http://pyproj4.github.io/pypr

832 Dec 31, 2022
Spectral decomposition for characterizing long-range interaction profiles in Hi-C maps

Inspectral Spectral decomposition for characterizing long-range interaction prof

Nezar Abdennur 6 Dec 13, 2022
Yet Another Time Series Model

Yet Another Timeseries Model (YATSM) master v0.6.x-maintenance Build Coverage Docs DOI | About Yet Another Timeseries Model (YATSM) is a Python packag

Chris Holden 60 Sep 13, 2022
Constraint-based geometry sketcher for blender

Geometry Sketcher Constraint-based sketcher addon for Blender that allows to create precise 2d shapes by defining a set of geometric constraints like

1.7k Jan 02, 2023
When traveling in the backcountry during winter time, updating yourself on current and recent weather data is important to understand likely avalanche danger.

Weather Data When traveling in the backcountry during winter time, updating yourself on current and recent weather data is important to understand lik

Trevor Allen 0 Jan 02, 2022
Create Siege configuration files from Cloud Optimized GeoTIFF.

cogeo-siege Documentation: Source Code: https://github.com/developmentseed/cogeo-siege Description Create siege configuration files from Cloud Optimiz

Development Seed 3 Dec 01, 2022
Python library to decrypt Airtag reports, as well as a InfluxDB/Grafana self-hosted dashboard example

Openhaystack-python This python daemon will allow you to gather your Openhaystack-based airtag reports and display them on a Grafana dashboard. You ca

Bezmenov Denys 19 Jan 03, 2023
r.cfdtools 7 Dec 28, 2022