Skip to content

🌐 Community Open Source Roadmap #6

@simonprovost

Description

@simonprovost

🌐 UrbanMapper Community – Open Source Roadmap

🧭 High-Level Themes

  • Broaden model support (open-source LLMs, ML-assisted enrichers/imputers/filters).
  • Deepen geospatial integrations (JupyterGIS, Auctus Search, SKRUB, scikit-longitudinal, LangRS).
  • Expand data access & loaders (GeoJSON/KML/GeoPackage/DBs/PyDataverse/Overture).
  • Strengthen visualization (3D, raster layers, PyAutark, MapLibre/Leafmap, Pretty Maps).
  • Improve docs, tutorials, and community workflows (FAQs, video guides).

1) Pipeline Generator – Open Model Support

Goal: Allow seamless switching between GPT, Llama (Ollama), Mistral, Grok, and other OSS LLMs.
Action: Add new generators under pipeline_generator/generators.

Tip

Aim for provider-parity tests so contributors can validate behavior across model backends quickly.

  • Add Llama (Ollama) generator.
  • Add other OSS LLM providers (Mistral, Grok, etc.).
  • Provide configuration for easy provider switching and parity tests.

2) JupyterGIS (by @geojupyter) Upgrade

Goal: Align with JupyterGIS ≥0.5.0 and improve UX.

  • Upgrade UrbanMapper compatibility to JupyterGIS 0.5.0.
  • Verify scroll behavior in identify panel.
  • Verify saving analyses after annotation.
  • If JupyterGIS ships color scheme utilities, remove custom equivalents.
  • Add a user guide for all UrbanMapper x JupyterGIS integrations.

3) Spatio-Temporal Data via scikit-longitudinal or others

Goal: Support longitudinal datasets

Tip

Include a minimal example notebook that chains two enrichers into a LongitudinalDataset to accelerate onboarding.

  • Integrate LongitudinalDataset to build spatio-temporal layers.
  • Add examples showing multi-enricher workflows feeding longitudinal data.

4) LangRS as an Urban Layer

Goal: Evaluate and prototype LangRS (remote sensing image segmentation) as a new layer/mixin.

Important

Confirm licensing and API stability of LangRS before declaring the layer GA-ready.

  • Engage with @MohanadDiab / Polimi lead noted in upstream issue.
  • Provide an example in examples/Basics/2-Urban-Layer.ipynb demonstrating LangRS usage.

5) Imputer Module Expansion

Goal: Add richer GIS and ML-driven imputation strategies (inherit from abc_imputer.py).

  • Implement literature-backed GIS imputers.
  • Add ML-powered imputers.
  • Prototype novel rule-based or Geo-LLM-powered imputers.

6) Filter Module Expansion

Goal: Broaden filtering beyond bounding-box drops (inherit from abc_filter.py).

  • Implement literature-backed GIS filters.
  • Add ML-powered filters.
  • Prototype innovative/Geo-LLM-based filtering.

7) Loader Module – More Formats & Data Entrypoints

Goal: Support more geospatial formats and external data sources (inherit from abstract loader).

Caution

Be mindful of optional dependencies—gate heavyweight drivers (e.g., PostGIS/DuckDB) behind extras to keep base installs light.

  • Add loaders: GeoJSON, KML/KMZ, GeoPackage, JSON, XML.
  • Add DB-backed loaders: PostGIS, SQLite, DuckDB.
  • Integrate PyDataverse for dataset access (HuggingFace already done via #45/#49 on UpStream).

8) Visualiser Module – New Visualisation Primitives

Goal: Expand visualization modes (inherit from abc_visualiser.py; align visual specs via discussion).

Tip

Start with thin adapters and shared style tokens so new visualisers stay consistent with existing UX.

  • 3D renderer (e.g via PyAutark, Voxcity).
  • Pretty Maps integration (aesthetic focus).
  • Leafmap + MapLibre globe/3D.
  • Explore additional innovative visualisers.

9) Urban Layer Coverage Expansion

Goal: Broaden feature coverage and new data sources.

  • Add subways/tubes.
  • Add railways.
  • Add OvertureMaps-based layers (e.g., from_overture(type="road"\|"water"\|...)).

10) Documentation Upgrades

Video tutorials

  • Identify top use cases.
  • Record step-by-step video walkthroughs.
  • Surface them in Getting Started > “Video Tutorials.”

FAQ

  • Collect common questions (“What makes Urban Mapper different?”, etc.).
  • Publish concise answers in docs/FAQ.

11) Brainstorming Tracks (Early Exploration)


🤝 How to Contribute

Metadata

Metadata

Assignees

Labels

documentationImprovements or additions to documentationenhancementNew feature or requestgood first issueGood for newcomershelp wantedExtra attention is neededquestionFurther information is requested

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions