Help: Moving a Streamlit App Using GeoPandas From Community Cloud to Snowflake — Compatibility Issues?

Hi everyone,

My colleague and I are working on a Streamlit app that visualizes California highway expansion projects where residential and business displacement occurred. The app is built around GeoPandas for geospatial processing, and we’re currently hosting it on Streamlit Community Cloud.

Link: https://homes-before-highways.streamlit.app/

We’d like to migrate the project to Snowflake so the app can run continuously rather than asleep when idle. However, we’re running into issues with GeoPandas compatibility on Snowflake. From what we can tell, GeoPandas (and some of its dependencies like Shapely, Fiona, GEOS, GDAL, etc.) aren’t supported in the Snowflake environment.

Our questions:

  1. Is there any known way to use GeoPandas inside a Snowflake-based Streamlit app?
    (e.g., Snowpark workarounds, custom packages, conda support, etc.)

  2. If GeoPandas truly isn’t supported, what are recommended alternatives for handling geospatial data?

    • Is there a Snowflake-native geospatial library that can replace our workflow?

    • Are there examples of Streamlit + Snowflake apps doing geospatial visualization without GeoPandas?

  3. Would a hybrid approach work?
    For example:

    • Storing geospatial data in Snowflake

    • Doing transformations using Snowflake’s GEOGRAPHY / GEOMETRY types

    • Rendering maps in Streamlit without needing GeoPandas

  4. Any best practices for migrating Community Cloud apps that rely on C-extension geospatial libraries?

Current Setup

  • Stack: Streamlit + GeoPandas + Shapely + PyProj

  • Hosting: Streamlit Community Cloud

  • Goal: Host permanently via Streamlit in Snowflake

  • Issue: Inability to install GeoPandas and its geospatial dependencies in Snowflake’s environment

Any guidance, examples, or workarounds would be incredibly appreciated!
Thanks so much for your help.

GeoPandas isn’t supported in Snowflake’s Streamlit environment because of its C-extension dependencies. The recommended approach is to use Snowflake’s native GEOGRAPHY/GEOMETRY types and spatial SQL functions for transformations, then visualize results in Streamlit with PyDeck (st.pydeck_chart). A hybrid workflow works well: store and process geospatial data in Snowflake, query via Snowpark, and render maps in Streamlit. Snowflake has official guides and examples showing this pattern (see Snowflake’s geospatial + Streamlit quickstarts).

1 Like

Consider renting a cheap VPS. You can point a subdomain to it with Cloudflare. ChatGPT can walk you through the process.

1 Like