Streamlit Component for rendering Folium maps

Overview

streamlit-folium

Run tests each PR

Open in Streamlit

This Streamlit Component is a work-in-progress to determine what functionality is desirable for a Folium and Streamlit integration. Currently, one method folium_static() is defined, which takes a folium.Map or folium.Figure object and displays it in a Streamlit app.

Installation

pip install streamlit-folium

or

conda install -c conda-forge streamlit-folium

Example

import streamlit as st
from streamlit_folium import folium_static
import folium

"# streamlit-folium"

with st.echo():
    import streamlit as st
    from streamlit_folium import folium_static
    import folium

    # center on Liberty Bell
    m = folium.Map(location=[39.949610, -75.150282], zoom_start=16)

    # add marker for Liberty Bell
    tooltip = "Liberty Bell"
    folium.Marker(
        [39.949610, -75.150282], popup="Liberty Bell", tooltip=tooltip
    ).add_to(m)

    # call to render Folium map in Streamlit
    folium_static(m)

"streamlit_folium example"

Comments
  • Map flickering

    Map flickering

    I am trying to add some Google Earth Engine layers (XYZ tile layers) to the map. You can see that the layers have been added successfully, but the map keeps refreshing. Any advice?

    import ee
    import geemap.foliumap as geemap
    import streamlit as st
    from streamlit_folium import st_folium
    
    m = geemap.Map()
    dem = ee.Image("USGS/SRTMGL1_003")
    m.addLayer(dem, {}, "DEM")
    st_data = st_folium(m, width=1000)
    

    Peek 2022-05-07 22-25

    To test it in a notebook:

    import ee
    import geemap.foliumap as geemap
    
    m = geemap.Map()
    dem = ee.Image("USGS/SRTMGL1_003")
    m.addLayer(dem, {}, "DEM")
    m
    
    opened by giswqs 13
  • Returning Latitude, Longitude values from folium map on mouse click to python script (streamlit webapp)

    Returning Latitude, Longitude values from folium map on mouse click to python script (streamlit webapp)

    I am writing a webapp where the user will click on the map and the latitude, longitude will be returned to the python script. the webapp is written on streamlit and for the map I am using folium. Currently, I used folium.LatLngPopup() to get the on click lat long of the clicked location, but I am very confused how to retrieve the values in my python script for further processing.

    This is how it looks currently:

    [This is how it looks currently]1

    #code snippet

    import streamlit as st
    from streamlit_folium import folium_static
    import folium
    m = folium.Map()
    m.add_child(folium.LatLngPopup())
    folium_static(m)
    

    There might not be a native solution to it but any workaround will be appreciated!

    opened by hasantanvir79 8
  • st_folium() autorefresh issue

    st_folium() autorefresh issue

    I recently switched from using folium_static() to st_folium() but I have an issue with its autorefresh. Whenever the folium map is interacted with, the website refreshes from the very top of the page. My project involves scraping data from a website, so anytime the page refreshes, all the code runs again. This makes it virtually impossible to interact with the map. Below is the streamlit app and code

    Code (code for map beings on line 248): https://github.com/daniyal-d/COVID-19-Tracker-Web-App/blob/main/coronavirus_web_app.py Streamlit app (using st_folium): https://daniyal-d-covid-19-tracker-web-app-coronavirus-web-app-fah46j.streamlitapp.com/

    I am unsure if this is an issue with my code or the function. Either way, using folium_static() doesn't lead to any issues. If this problem can't be solved, would you be able to not depreciate 'folium_static()` as the app uses it?

    Thank you

    opened by daniyal-d 7
  • Use Folium attribute selection to populate ST controls

    Use Folium attribute selection to populate ST controls

    Hi Randy. I have created a user story for a use case I have which is to use information from selected features in a specific map layer to populate ST controls. An example : populating an image list in a ST dropdown with the currently visible (or selected) features on a given layer in the map.

    I'd like to work on a PR for that and wondered if you had thoughts or plans along those lines. Here is the (short) document : https://github.com/ymoisan/streamlit-folium/blob/master/user-stories.md. Comments welcome. Thanx for the component !

    opened by ymoisan 7
  • Caching Folium Maps

    Caching Folium Maps

    Hello everyone!

    In the meanwhile, that we start making a bidirectional component with javascript, I was wondering how caching Folium Maps.

    I have created this example for the purpose of it:

    import streamlit as st
    import folium
    import pandas as pd
    import streamlit.components.v1 as components
    import numpy as np
    
    def create_test_df():
        data = {"id": range(10000),
                "year": np.random.choice(range(2018, 2021), 10000),
                "type": np.random.choice(["type_a", "type_b", "type_c"], 10000),
                "latitude": np.random.uniform(low=10, high=20, size=10000),
                "longitude": np.random.uniform(low=10, high=20, size=10000)}
    
        # Respects order
        return pd.DataFrame(data, columns=["id", "year", "type", "latitude", "longitude"])
    
    
    def _plot_dot(point, map_element, color_col, radius=4, weight=1, color='black'):
        color_dict = {2018: "blue", 2019: "orange", 2020: "red"}
    
        folium.CircleMarker(location=[point["latitude"], point["longitude"]], radius=radius, weight=weight,
                            color=color, fill=True,
                            fill_color=color_dict[point[color_col]],
                            fill_opacity=0.9,
                            tooltip=f'<b>id: </b>{str(point["id"])}'
                                    f'<br></br>'f'<b>year: </b>{str(point["year"])}'
                                    f'<br></br>'f'<b>type: </b>{str(point["type"])}',
                            popup=f'<b>id: </b>{str(point["id"])}'
                                  f'<br></br>'f'<b>year: </b>{str(point["year"])}'
                                  f'<br></br>'f'<b>type: </b>{str(point["type"])}'
                            ).add_to(map_element)
    
    
    def generate_map(df):
        map_element = folium.Map(location=[15, 15], zoom_start=6, tiles='cartodbpositron')
    
        df.apply(_plot_dot, axis=1, args=[map_element, "year"])
    
        return map_element
    
    
    def folium_static(fig, width=700, height=500):
        if isinstance(fig, folium.Map):
            fig = folium.Figure().add_child(fig)
    
        return components.html(fig.render(), height=(fig.height or height) + 10, width=width)
    
    
    if __name__ == "__main__":
        st.title("Caching Folium Maps")
    
        df = create_test_df()
    
        option = st.selectbox('Select year?', df['year'].unique())
        st.write('You selected: ', option)
    
        dict_years = {}
        for year in df['year'].unique():
            dict_years[year] = generate_map(df[df["year"] == year])
    
        folium_static(dict_years[option])
    

    This code runs correctly: 1

    I had tried to @st.cache functions with no positive results: Capture

    I understand that I must get deeper into advanced caching (https://docs.streamlit.io/en/stable/advanced_caching.html). Any guidelines about this are welcome.

    enhancement question 
    opened by juancalvof 7
  • Editing+Saving modified drawn layer does not update geometry

    Editing+Saving modified drawn layer does not update geometry

    Thanks a lot for this great library!

    I'm using streamlit-folium in mapa-streamlit and I believe we have found a bug.

    Observed Behavior

    When drawing a rectangle on the folium map, the streamlit app "Running" mode seems to get triggered whenever the rectangle was finished drawing. I can then access the resulting geojson geometry of the rectangle. That is expected and in line with the desired behavior. However, if I now were to edit the drawn rectangle using the "Edit layers" button (see below picture), the streamlit "running" mode does not get triggered when I click on "Save". At the same time, if I inspect the given geojson geometry, it is still the same and did not get updated to the modified geometry.

    Desired Behavior

    Updating a drawn layer (e.g. a rectangle) using the edit button updates the output of st_folium.

    Picture for reference: Screenshot 2022-04-10 at 10 59 53

    opened by fgebhart 6
  • Render <class 'branca.element.Figure'> to allow resizing without white space

    Render to allow resizing without white space

    Hey @randyzwitch , thank you for providing this component, it's been very useful.

    The only issue so far is that reducing folium width/height produces white space on the borders:

    import folium
    m = folium.Map(width='70%', height='50%')
    m
    

    The solution is to use branca.element.Figure class:

    from branca.element import Figure
    fig = Figure(width='70%', height='50%')
    m = folium.Map()
    fig.add_child(m)
    

    However, your component currently is not able to render it. Could you please enable that or suggest a workaround?

    opened by GitHunter0 6
  • Add DualMap support

    Add DualMap support

    Streamlit-folium component now supports also DualMap from Folium plugins.

    • Add switch in streamlit-folium __init__.py to properly handle DualMap rendering

    • Update app example adding DualMap

    opened by a-slice-of-py 6
  • Feature request: return map bounds to streamlit

    Feature request: return map bounds to streamlit

    I have a pandas dataframe that contains the lat/lon location of a bunch of markers (plus other data) and am displaying that when a pin is clicked on via a popup, with the map generated by:

    import folium
    from folium import IFrame
    import pandas as pd
    
    df = pd.read_csv("my.csv")
    
    location = df['latitude'].mean(), df['longitude'].mean()
    m = folium.Map(location=location, zoom_start=15)
    
    width = 900
    height = 600 
    fat_wh = 1 # border around image
    
    for i in range(0, len(df)):
        html = pd.DataFrame(df[["latitude", "longitude", "time"]].iloc[i]).to_html()
        iframe = IFrame(html, width=width*fat_wh, height=height*fat_wh)
        popup  = folium.Popup(iframe, parse_html = True, max_width=2000)
        folium.Marker([df['latitude'].iloc[i], df['longitude'].iloc[i]], popup=popup).add_to(m)
    
    folium_static(m)
    

    Now this dataframe may in future get VERY large as it potentially covers the whole world, so I only want to return the markers that are in the current map view, and do some clever aggregation when the map is zoomed out. For this I need to get the extent of the map view coordinates, and use these to filter the dataframe (I probably also want to do some caching somewhere). Can you advise if this is possible/requires a new feature? Many thanks

    opened by robmarkcole 6
  • Controlled data return

    Controlled data return

    Adds an argument for specifying what data gets returned from the bidrectional st_folium via an argument returned_objects. Anything that is not returned does not cause an app return. If you pass an empty list, it returns an empty dictionary. This leads to a simple rewrite of folium_static to simply call st_folium with an empty list of data items to return.

    Also refactored the example app into a MPA and added a page showing the new limited-return functionality.

    e.g. st_folium(m, returned_objects=["last_clicked"]) -- app would only return the last value clicked, and any other map interactions would not change the value returned, or trigger an app rerun.

    Resolves: #85 Resolves: #77

    opened by blackary 5
  • Get zoom level

    Get zoom level

    Is it possible to get the zoom level of a map object? I saw a similar question at https://github.com/python-visualization/folium/issues/1352, but there is no solution.

    opened by giswqs 5
  • Question: can we get more information on

    Question: can we get more information on "last_object_clicked" than 'lat', 'lng'

    Hello,

    Thank you very much for this library. I am wondering if we can get more information from "last_object_clicked" than 'lat', 'lng'? For example, I set a marker with "popup" and "location". When I click on it and generate an output "last_object_clicked", it generates only 'lat' and 'lng'. I would like to also be able to return 'text from popup'. Is that possible? Or maybe some other attributes related to the marker, so that eventually I can identify which marker was clicked.

    Thanks!

    opened by JurijsNazarovs 0
  • Legend of the map is not displayed

    Legend of the map is not displayed

    The legend of my map is not displayed using the st_folium when colorbar= false. The code:

    import pandas as pd
    import folium
    import geopandas as gpd
    import numpy as np
    import mapclassify
    import streamlit as st
    from streamlit_folium import st_folium
    
    url = ("https://raw.githubusercontent.com/python-visualization/folium/master/examples/data")
    state_geo = f"{url}/us-states.json"
    state_unemployment = f"{url}/US_Unemployment_Oct2012.csv"
    
    state_unemployment = pd.read_csv(state_unemployment)
    geoJSON_df = gpd.read_file(state_geo)
    
    geoJSON_df.rename(columns={'id': 'State'}, inplace=True)
    
    gdf = state_unemployment.merge(geoJSON_df, on='State', how='left')
    gdf = gpd.GeoDataFrame(gdf)
    
    bins = mapclassify.Quantiles(gdf['Unemployment'], k=5).bins
    choropleth = gdf.explore(
        column='Unemployment',
        scheme='UserDefined',
        classification_kwds=dict(bins=bins),
        legend=True,
        legend_kwds=dict(colorbar=False),
    )
    
    st_folium(choropleth, width=700,height=500)
    

    Displayed: displayed

    Expected: expected

    opened by MatheusLevy 0
  • Error when I try to add plugins.FloatImage with st_folium

    Error when I try to add plugins.FloatImage with st_folium

    Hi :wave:

    ... and thanks for providing this great addition to streamlit.

    I was wondering: are folium.plugins generally supported? I wanted to add a FloatImage to the canvas (using st_folium) but I get an error:

    .../lib/python3.11/site-packages/streamlit_folium/__init__.py", line 242, in generate_leaflet_string
        leaflet = m._template.module.script(m)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^
    AttributeError: 'TemplateModule' object has no attribute 'script'
    

    I see there's some special magic for the DualMap plugins - so maybe the FloatImage requires some special treatment, too?

    I'm using python 3.11 and streamlit-folium 0.7

    Cheers, C

    opened by cwerner 0
  • Just a question: extract more values based on user click on Draw plugin.

    Just a question: extract more values based on user click on Draw plugin.

    Hi, thanks for this great library. Really helpful!

    btw I am a beginner in the web developing and github as well, I am so sorry if there are some stupidities on my questions.

    I would like to ask, is it possible to return every value of click event?

    At the moment, I am trying to present folium map on Streamlit. I used the st_folium with Draw plugin and then utilized some of its return values. However I would like to go further.

    For instance, I want user to be able comment on a certain feature or a drawn polygon. For that I created a Popup page that contains a html from. I succeeded to attach the form into the GeojsonPopup however I have struggled to find a way to return the comment and not found it yet. Do you have any idea how to solve it?

    Another example regarding clicking event, I would like to get clicking event when a features e.g., a polygon has finished to be created/edited. Is it possible to return a value on that event?

    Thank you for you time.

    Best wishes, Leclab Research Assistance,

    opened by leclab0 0
  • Your app is having trouble loading the streamlit_folium.st_folium component.

    Your app is having trouble loading the streamlit_folium.st_folium component.

    Hi great job on this library it has been invaluable for my project.

    Lately I have been getting this issue Your app is having trouble loading the streamlit_folium.st_folium component. both on the locally hosted and on streamlit share version. I have been doing lots of updates so not sure which change actually kicked this off. I have seem other people have this error with other components so not sure the cause (https://github.com/PablocFonseca/streamlit-aggrid/issues/7).

    If you leave it a minute or so the map will eventually load (and this issue only occurs sometimes). Does anyone have any thoughts?

    opened by thomasdkelly 5
Releases(v0.10.0)
  • v0.10.0(Jan 4, 2023)

    What's Changed

    • Fix bug, isolate string generation, add more tests by @blackary in https://github.com/randyzwitch/streamlit-folium/pull/108
    • Add VectorGrid support by @blackary in https://github.com/randyzwitch/streamlit-folium/pull/109
    • Use playwright to generate functional frontend tests by @blackary in https://github.com/randyzwitch/streamlit-folium/pull/110
    • Try and make tests more reliable by clicking on navigation links twice and checking for page title by @blackary in https://github.com/randyzwitch/streamlit-folium/pull/111

    Full Changelog: https://github.com/randyzwitch/streamlit-folium/compare/v0.9.0...v0.10.0

    Source code(tar.gz)
    Source code(zip)
  • v0.9.0(Jan 2, 2023)

    What's Changed

    • Update requirements to make examples use 0.8.1 by @blackary in https://github.com/randyzwitch/streamlit-folium/pull/101
    • Add code and test to make sure all references to variables are correctly overwritten with standardized ones… by @blackary in https://github.com/randyzwitch/streamlit-folium/pull/104

    Full Changelog: https://github.com/randyzwitch/streamlit-folium/compare/v0.8.1...v0.9.0

    Source code(tar.gz)
    Source code(zip)
  • v0.8.1(Dec 9, 2022)

    What's Changed

    • Bump example by @blackary in https://github.com/randyzwitch/streamlit-folium/pull/99
    • Standardize ids that get assigned to force unnecessary rerunning, and explicitly turn off events for old layers by @blackary in https://github.com/randyzwitch/streamlit-folium/pull/100

    Full Changelog: https://github.com/randyzwitch/streamlit-folium/compare/v0.8.0...v0.8.1

    Source code(tar.gz)
    Source code(zip)
  • v0.8.0(Dec 8, 2022)

    What's Changed

    • Force the example app to use the latest release by @blackary in https://github.com/randyzwitch/streamlit-folium/pull/90
    • Shrink second pane unless using it for DualMap by @blackary in https://github.com/randyzwitch/streamlit-folium/pull/96
    • Dynamic updates by @blackary in https://github.com/randyzwitch/streamlit-folium/pull/97
    • Ignore warnings by @blackary in https://github.com/randyzwitch/streamlit-folium/pull/98

    Full Changelog: https://github.com/randyzwitch/streamlit-folium/compare/v0.7.0...v0.8.0

    Source code(tar.gz)
    Source code(zip)
  • v0.7.0(Nov 10, 2022)

    What's Changed

    • Controlled data return by @blackary in https://github.com/randyzwitch/streamlit-folium/pull/89

    Full Changelog: https://github.com/randyzwitch/streamlit-folium/compare/v0.6.15...v0.7.0

    Source code(tar.gz)
    Source code(zip)
  • v0.6.15(Aug 31, 2022)

    What's Changed

    • Bump streamlit from 1.8.1 to 1.11.1 in /examples by @dependabot in https://github.com/randyzwitch/streamlit-folium/pull/80
    • Bump streamlit from 1.8.1 to 1.11.1 in /tests by @dependabot in https://github.com/randyzwitch/streamlit-folium/pull/81
    • Support html siblings to the map by @blackary in https://github.com/randyzwitch/streamlit-folium/pull/83

    New Contributors

    • @dependabot made their first contribution in https://github.com/randyzwitch/streamlit-folium/pull/80

    Full Changelog: https://github.com/randyzwitch/streamlit-folium/compare/v0.6.14...v0.6.15

    Source code(tar.gz)
    Source code(zip)
  • v0.6.14(Jul 6, 2022)

    Fix Draw plugin functionality

    What's Changed

    • Fix all_drawings to get properly populated by @blackary in https://github.com/randyzwitch/streamlit-folium/pull/76

    Full Changelog: https://github.com/randyzwitch/streamlit-folium/compare/v0.6.13...v0.6.14

    Source code(tar.gz)
    Source code(zip)
  • v0.6.13(May 31, 2022)

    What's Changed

    • Return map center by @blackary in https://github.com/randyzwitch/streamlit-folium/pull/69

    Full Changelog: https://github.com/randyzwitch/streamlit-folium/compare/v0.6.12...v0.6.13

    Source code(tar.gz)
    Source code(zip)
  • v0.6.12(May 26, 2022)

    Sets default value for bounds, working around an upstream bug in Folium

    What's Changed

    • Dont fail on bounds by @blackary in https://github.com/randyzwitch/streamlit-folium/pull/68

    Full Changelog: https://github.com/randyzwitch/streamlit-folium/compare/v0.6.11...v0.6.12

    Source code(tar.gz)
    Source code(zip)
  • v0.6.11(May 23, 2022)

    What's Changed

    • Fix google earth engine flickering and cleanup code by @blackary in https://github.com/randyzwitch/streamlit-folium/pull/66

    Full Changelog: https://github.com/randyzwitch/streamlit-folium/compare/v0.6.10...v0.6.11

    Source code(tar.gz)
    Source code(zip)
  • v0.6.10(May 16, 2022)

    What's Changed

    • Add last drawn circle radius and polygon to output by @sfc-gh-zblackwood in https://github.com/randyzwitch/streamlit-folium/pull/59
    • Fix safari by @blackary in https://github.com/randyzwitch/streamlit-folium/pull/60

    Full Changelog: https://github.com/randyzwitch/streamlit-folium/compare/v0.6.9...v0.6.10

    Source code(tar.gz)
    Source code(zip)
  • v0.6.9(May 11, 2022)

    Resolves issue where a double-click was required for update

    What's Changed

    • Fix layer-click bug by @blackary in https://github.com/randyzwitch/streamlit-folium/pull/57

    Full Changelog: https://github.com/randyzwitch/streamlit-folium/compare/v0.6.8...v0.6.9

    Source code(tar.gz)
    Source code(zip)
  • v0.6.8(May 11, 2022)

    Fixes type instability on map load, where the default instantiated value returned a list and component then returns a dict.

    Full Changelog: https://github.com/randyzwitch/streamlit-folium/compare/v0.6.7...v0.6.8

    Source code(tar.gz)
    Source code(zip)
  • v0.6.7(Apr 25, 2022)

    What's Changed

    • Fix popups and default return by @blackary in https://github.com/randyzwitch/streamlit-folium/pull/49

    Full Changelog: https://github.com/randyzwitch/streamlit-folium/compare/v0.6.6...v0.6.7

    Source code(tar.gz)
    Source code(zip)
  • v0.6.6(Apr 21, 2022)

    What's Changed

    • Fix popups and default return by @blackary in https://github.com/randyzwitch/streamlit-folium/pull/48

    Full Changelog: https://github.com/randyzwitch/streamlit-folium/compare/v0.6.5...v0.6.6

    Source code(tar.gz)
    Source code(zip)
  • v0.6.5(Apr 12, 2022)

    What's Changed

    • Update drawn objects on edit and delete by @sfc-gh-zblackwood in https://github.com/randyzwitch/streamlit-folium/pull/42

    New Contributors

    • @sfc-gh-zblackwood made their first contribution in https://github.com/randyzwitch/streamlit-folium/pull/42

    Full Changelog: https://github.com/randyzwitch/streamlit-folium/compare/v0.6.4...v0.6.5

    Source code(tar.gz)
    Source code(zip)
  • v0.6.4(Mar 21, 2022)

  • v0.6.3(Mar 17, 2022)

    Adds zoom level as one of the properties returned on interaction with st_folium

    What's Changed

    • Get map zoom by @blackary in https://github.com/randyzwitch/streamlit-folium/pull/39

    Full Changelog: https://github.com/randyzwitch/streamlit-folium/compare/v0.6.2...v0.6.3

    Source code(tar.gz)
    Source code(zip)
  • v0.6.2(Feb 18, 2022)

    #34 highlighted that some features weren't working as expected, which was determined to be at least partially due to missing JS dependencies inside the iframe. This release fixes that.

    Source code(tar.gz)
    Source code(zip)
  • v0.6.0(Feb 15, 2022)

    This release adds bi-directional support via the st_folium function. When calling mapdata = st_folium(m), a dict will be returned back to Python with the bounding box and other click data. Improved documentation will come in a future release as time allows, but you can see the examples folder for ideas of how to use this new functionality.

    What's Changed

    • Make component bidirectional by @blackary in https://github.com/randyzwitch/streamlit-folium/pull/28
    • Fix manifest, bump version by @randyzwitch in https://github.com/randyzwitch/streamlit-folium/pull/29
    • Fix manifest by @randyzwitch in https://github.com/randyzwitch/streamlit-folium/pull/31
    • Add support for getting all drawn objects on the map by @blackary in https://github.com/randyzwitch/streamlit-folium/pull/32

    New Contributors

    • @blackary made their first contribution in https://github.com/randyzwitch/streamlit-folium/pull/28

    Full Changelog: https://github.com/randyzwitch/streamlit-folium/compare/v0.5.0...v0.6.0

    Source code(tar.gz)
    Source code(zip)
  • v0.6.0a4(Feb 15, 2022)

  • v0.6.0a3(Feb 11, 2022)

    Test of building the bi-directional component and submitting to PyPI.

    USERS SHOULD NOT USE THIS VERSION UNLESS YOU UNDERSTAND WHAT THIS MEANS

    Source code(tar.gz)
    Source code(zip)
  • v0.5.0(Feb 9, 2022)

    Release moves required version of Streamlit >= 1.2 to ensure memory improvements are incorporated, adds Branca rendering, fixes CI by pinning dependencies closer

    Source code(tar.gz)
    Source code(zip)
  • v0.4.0(May 17, 2021)

  • 0.3.0(Mar 9, 2021)

  • 0.2.0(Mar 3, 2021)

  • v0.1.1(Feb 5, 2021)

  • v0.1.0(Aug 13, 2020)

  • v0.0.1(Jul 20, 2020)

Owner
Randy Zwitch
Head of Developer Relations at Streamlit. Julia enthusiast, R and Python developer
Randy Zwitch
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
Simulation and Parameter Estimation in Geophysics

Simulation and Parameter Estimation in Geophysics - A python package for simulation and gradient based parameter estimation in the context of geophysical applications.

SimPEG 390 Dec 15, 2022
This is a simple python code to get IP address and its location using python

IP address & Location finder @DEV/ED : Pavan Ananth Sharma Dependencies: ip2geotools Note: use pip install ip2geotools to install this in your termin

Pavan Ananth Sharma 2 Jul 05, 2022
Histogram matching plugin for rasterio

rio-hist Histogram matching plugin for rasterio. Provides a CLI and python module for adjusting colors based on histogram matching in a variety of col

Mapbox 75 Sep 23, 2022
A simple python script that, given a location and a date, uses the Nasa Earth API to show a photo taken by the Landsat 8 satellite. The script must be executed on the command-line.

What does it do? Given a location and a date, it uses the Nasa Earth API to show a photo taken by the Landsat 8 satellite. The script must be executed

Caio 42 Nov 26, 2022
ESMAC diags - Earth System Model Aerosol-Cloud Diagnostics Package

Earth System Model Aerosol-Cloud Diagnostics Package This Earth System Model (ES

Pacific Northwest National Laboratory 1 Jan 04, 2022
Hapi is a Python library for building Conceptual Distributed Model using HBV96 lumped model & Muskingum routing method

Current build status All platforms: Current release info Name Downloads Version Platforms Hapi - Hydrological library for Python Hapi is an open-sourc

Mostafa Farrag 15 Dec 26, 2022
scalable analysis of images and time series

thunder scalable analysis of image and time series analysis in python Thunder is an ecosystem of tools for the analysis of image and time series data

thunder-project 813 Dec 29, 2022
r.cfdtools 7 Dec 28, 2022
A GUI widget for Linux to show current time in different timezones.

A GUI widget to show current time in different timezones (under development). To use this widget: Run scripts/startup.py Select a country. A list of t

B.Jothin kumar 11 Nov 10, 2022
Color correction plugin for rasterio

rio-color A rasterio plugin for applying basic color-oriented image operations to geospatial rasters. Goals No heavy dependencies: rio-color is purpos

Mapbox 111 Nov 15, 2022
Digital Earth Australia notebooks and tools repository

Repository for Digital Earth Australia Jupyter Notebooks: tools and workflows for geospatial analysis with Open Data Cube and xarray

Geoscience Australia 335 Dec 24, 2022
Raster processing benchmarks for Python and R packages

Raster processing benchmarks This repository contains a collection of raster processing benchmarks for Python and R packages. The tests cover the most

Krzysztof Dyba 13 Oct 24, 2022
QLUSTER is a relative orbit design tool for formation flying satellite missions and space rendezvous scenarios

QLUSTER is a relative orbit design tool for formation flying satellite missions and space rendezvous scenarios, that I wrote in Python 3 for my own research and visualisation. It is currently unfinis

Samuel Low 9 Aug 23, 2022
Specification for storing geospatial vector data (point, line, polygon) in Parquet

GeoParquet About This repository defines how to store geospatial vector data (point, lines, polygons) in Apache Parquet, a popular columnar storage fo

Open Geospatial Consortium 449 Dec 27, 2022
Cloud Optimized GeoTIFF creation and validation plugin for rasterio

rio-cogeo Cloud Optimized GeoTIFF (COG) creation and validation plugin for Rasterio. Documentation: https://cogeotiff.github.io/rio-cogeo/ Source Code

216 Dec 31, 2022
A multi-page streamlit app for the geospatial community.

A multi-page streamlit app for the geospatial community.

Qiusheng Wu 522 Dec 30, 2022
Obtain a GNSS position fix from an 11-millisecond raw GNSS signal snapshot

Obtain a GNSS position fix from an 11-millisecond raw GNSS signal snapshot without any prior knowledge about the position of the receiver and only coarse knowledge about the time.

Jonas Beuchert 2 Nov 17, 2022
Bacon - Band-limited Coordinate Networks for Multiscale Scene Representation

BACON: Band-limited Coordinate Networks for Multiscale Scene Representation Project Page | Video | Paper Official PyTorch implementation of BACON. BAC

Stanford Computational Imaging Lab 144 Dec 29, 2022
Expose a GDAL file as a HTTP accessible on-the-fly COG

cogserver Expose any GDAL recognized raster file as a HTTP accessible on-the-fly COG (Cloud Optimized GeoTIFF) The on-the-fly COG file is not material

Even Rouault 73 Aug 04, 2022