diff --git a/conductor/tracks/fix_memory_subprocess_20260203/plan.md b/conductor/tracks/fix_memory_subprocess_20260203/plan.md new file mode 100644 index 0000000..24be4ce --- /dev/null +++ b/conductor/tracks/fix_memory_subprocess_20260203/plan.md @@ -0,0 +1,17 @@ +# Implementation Plan - Fix Critical Memory & Subprocess Issues + +## Phase 1: Fix Subprocess Handling in buildings.py +- [x] Task: Refactor `_run` in `geodata_pipeline/buildings.py` (358e093) + - [ ] Update `_run` to remove unsafe splitting of arguments. + - [ ] Ensure all callers pass lists of strings correctly. + +## Phase 2: Fix Memory Leak in buildings.py +- [ ] Task: Implement windowed reading for ground snapping + - [ ] Calculate `srcwin` (xoff, yoff, xsize, ysize) based on tile bounds and VRT geotransform. + - [ ] Update `ReadAsArray` to use the calculated window. + - [ ] Handle edge cases (partial overlap). + +## Phase 3: Optimize Heightmap Export (Optional) +- [ ] Task: Use in-memory warp in `geodata_pipeline/heightmaps.py` + - [ ] Replace temporary file output in `gdal.Warp` with `MEM` driver. + - [ ] Pass the in-memory dataset to the next processing step.