james-willis opened a new issue, #3120:
URL: https://github.com/apache/sedona/issues/3120

   ## Expected behavior
   
   `RS_AsRaster` with `allTouched = true`, and `LINESTRING` rasterization, aim 
to match GDAL (`rasterio.features.rasterize(all_touched=True)`) on which pixels 
are burned.
   
   ## Actual behavior
   
   After the exact-traversal fix (#3118), the two engines agree on all general 
input (a 100-case randomized fuzz over anisotropic grids matches GDAL exactly). 
They can still differ by a single pixel when a geometry vertex lands *exactly* 
on a grid line.
   
   Example on a 6x6 unit grid:
   
   ```sql
   SELECT RS_BandAsArray(RS_AsRaster(
     ST_GeomFromWKT('POLYGON ((1.5 1.5, 3.8 3.0, 4.5 4.4, 3.4 3.5, 1.5 1.5))'),
     RS_MakeEmptyRaster(1, 'B', 6, 6, 0.0, 6.0, 1.0, -1.0, 0.0, 0.0, 0),
     'B', true, 1.0, 0.0, false), 1);
   ```
   
   The vertex `(1.5 1.5)` sits exactly on a pixel corner. Sedona burns the 
corner-touched cell (the geometry does touch it, at that point); GDAL omits it.
   
   ## Notes
   
   This only occurs at exact grid-aligned vertices, never on general-position 
input, and it is a *superset* of GDAL — Sedona's result is consistent with the 
literal documented rule ("all pixels touched by the geometry"). GDAL's own 
behaviour at these degeneracies is not internally consistent (it includes some 
corner touches and omits others depending on edge direction), so there is no 
single reference to match. Filing for visibility; low priority and not 
currently planned.
   
   Discovered while fixing #3118.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to