Keep polygon interior during vectorization
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 394
- Forks
- 95
- Avg merge
- 4d 3h
- Merged PRs (30d)
- 7
Description
There is a minor issue in spatialdata._core.operations.vectorize._vectorize_mask
The interior is removed when we have a mask with an interior, for instance this one:
import numpy as np
mask = np.zeros((100, 100), dtype=np.uint8)
mask[10:90, 10:90] = 1
mask[40:60, 40:60] = 0
mask[45:55, 45:55] = 1
Instead, it will create three polygons nested inside each other. A good behavior should be one of the following:
- one polygon with an interior, and another polygon (for the small square)
- or one multipolygon composed of the two above polygons
I'm not sure if it's very easy to fix. I'll investigate later.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in spatialdata._core.operations.vectorize._vectorize_mask and reproduce the issue with the nested-square NumPy mask shown in the report. Inspect the vectorization result and its polygon relationships; done means the outer polygon retains its interior while the small square remains a separate polygon or part of a multipolygon.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- data
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 68/100