Introducing myself + a few GRASS contributions (Jupyter, tests, small fixes)

Hi OSGeo community :] ,

I’m Rajveer (@Valyrian-Code on GitHub), a computer science student interested in open-source software and systems programming. I started contributing to GRASS to learn more about geospatial software and have been getting familiar with the project by building it from source, fixing bugs, and adding tests.

So far, I’ve contributed a few fixes and tests to both grass-tutorials and the main GRASS repository, including work on grass.jupyter, d.correlate, i.spectral, and test coverage improvements. A few of the open PRs:

  • #7485d.correlate: exit on insufficient input + fix a reused-variable crash
  • #7488i.spectral: fix the -t text output (was writing a Python tuple repr)
  • #7489grass.jupyter: use the Tools API in reproject_latlon
  • #7486 / #7487 — tests for grass.jupyter utils and r.colors.stddev

I’ve found myself particularly interested in the Jupyter/notebook experience, both through the tutorials and the grass.jupyter codebase.

A few quick questions:

  • Is additional work on the Jupyter/notebook area currently needed, and is there someone I should coordinate with?

  • For grass.jupyter, would more tests, Tools API migration, or feature work be most valuable?

  • Are there any areas with known testing gaps or issues where contributions would be especially helpful?

Thanks for the warm community. I’m looking forward to learning more and contributing further.

Rajveer Bishnoi :sparkles:
Linkedin : www.linkedin.com/in/rajveer-bishnoi-576b62356

Welcome! With grass.jupyter, we are missing a legend for InteractiveMap and potentially better styling of vectors. There have been some attempts (look in past opened or closed PRs), but honestly what we need is a well-thought out, and tested implementation that is easy to review.

Thanks @petrasovaa, that’s really helpful direction.

I went through #5468 and the open PR #7072. The raster legend already has an implementation in progress, so I don’t want to duplicate effort.

A couple of ways I could help, depending on what’s most useful:

Vector styling

  • I didn’t find an open PR for this, so I could take it on as a focused, tested contribution. Right now, add_vector() just forwards **kwargs to ipyleaflet. I’d aim for a small, documented styling interface (color, weight, fill, opacity, and ideally attribute-based styling), with tests and a short example. I’d sketch the approach here first before opening a PR.

Legend

  • If a fresh, easier-to-review implementation is wanted, I’m happy to take the r.colors.out → HTML approach you suggested, with tests. I’d only do that if it won’t duplicate #7072 though. I’d rather coordinate than compete.

Which would you prefer I start on?

Also, for vector styling, is there a model you’d like it to follow (for example, mirroring d.vect options or using a simple GeoJSON-style dictionary)?

Thanks again! happy to take on whichever is most useful. :sparkles: