Composer l'image de la planche en Lambert 93 depuis les sources de la pyramide
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@ -67,3 +67,55 @@ def test_export_modules_import_without_numpy():
|
||||
"import lidar_pipeline.export_pdf, lidar_pipeline.tiles; print('ok')")
|
||||
r = subprocess.run([sys.executable, "-c", code], capture_output=True, text=True)
|
||||
assert r.returncode == 0, r.stderr
|
||||
|
||||
|
||||
def _dalle(tmp_path, col, row, color=(200, 30, 30), px=100, layer="relief_oriente"):
|
||||
from lidar_pipeline import index, tiles
|
||||
from lidar_pipeline.tests.test_tiles import _make_dalle
|
||||
_make_dalle(tmp_path, col, row, [layer], color=color, px=px)
|
||||
tiles.source_index(tmp_path, force=True)
|
||||
|
||||
|
||||
def test_nodata_color_matches_visualizations():
|
||||
from lidar_pipeline.export_pdf import NODATA_RGB
|
||||
from lidar_pipeline.visualizations import RELIEF_NODATA_RGB
|
||||
assert NODATA_RGB == tuple(RELIEF_NODATA_RGB)
|
||||
|
||||
|
||||
def test_compose_l93_full_cell(tmp_path, monkeypatch):
|
||||
from lidar_pipeline import index
|
||||
from lidar_pipeline.export_pdf import compose_l93
|
||||
monkeypatch.setattr(index, "PANEL_VIZ", None)
|
||||
_dalle(tmp_path, 1054, 6882)
|
||||
img, mask, cells = compose_l93(tmp_path, (1054200.0, 6881200.0, 1054400.0, 6881300.0), 1.0)
|
||||
assert img.size == (200, 100) and cells == [(1054, 6882)]
|
||||
assert mask.getextrema() == (255, 255)
|
||||
r, g, b = img.getpixel((100, 50))
|
||||
assert r > 150 and g < 80 and b < 80
|
||||
|
||||
|
||||
def test_compose_l93_half_outside_is_white_hatched(tmp_path, monkeypatch):
|
||||
from lidar_pipeline import index
|
||||
from lidar_pipeline.export_pdf import compose_l93
|
||||
monkeypatch.setattr(index, "PANEL_VIZ", None)
|
||||
_dalle(tmp_path, 1054, 6882)
|
||||
# moitié ouest dans la dalle, moitié est hors données
|
||||
img, mask, cells = compose_l93(tmp_path, (1054900.0, 6881400.0, 1055100.0, 6881500.0), 1.0)
|
||||
assert mask.getpixel((50, 50)) == 255 and mask.getpixel((150, 50)) == 0
|
||||
east = img.crop((110, 0, 200, 100)).convert("L").getextrema()
|
||||
assert east[1] == 255 and east[0] < 255 # blanc + hachures
|
||||
|
||||
|
||||
def test_compose_l93_nodata_pixels_masked(tmp_path, monkeypatch):
|
||||
from lidar_pipeline import index
|
||||
from lidar_pipeline.export_pdf import NODATA_RGB, compose_l93
|
||||
monkeypatch.setattr(index, "PANEL_VIZ", None)
|
||||
_dalle(tmp_path, 1054, 6882, color=NODATA_RGB)
|
||||
img, mask, cells = compose_l93(tmp_path, (1054200.0, 6881200.0, 1054400.0, 6881300.0), 1.0)
|
||||
assert mask.getextrema() == (0, 0)
|
||||
|
||||
|
||||
def test_compose_l93_no_data_returns_empty_cells(tmp_path):
|
||||
from lidar_pipeline.export_pdf import compose_l93
|
||||
img, mask, cells = compose_l93(tmp_path, (0.0, 0.0, 100.0, 100.0), 1.0)
|
||||
assert cells == [] and mask.getextrema() == (0, 0)
|
||||
|
||||
Reference in New Issue
Block a user