Update lidar2map.py #16
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI cross-platform | |
| on: | |
| push: | |
| paths: | |
| - 'lidar2map.py' | |
| pull_request: | |
| paths: | |
| - 'lidar2map.py' | |
| workflow_dispatch: | |
| jobs: | |
| test: | |
| name: ${{ matrix.os }} | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu-latest, macos-latest, windows-latest] | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Setup Python 3.12 | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.12" | |
| - name: Installer les dependances Python | |
| run: pip install pyproj Pillow numpy scipy | |
| - name: Syntaxe Python | |
| run: python -c "import ast; ast.parse(open('lidar2map.py', encoding='utf-8').read()); print('OK')" | |
| - name: Import complet sans erreur | |
| shell: bash | |
| env: | |
| PYCODE: | | |
| import sys | |
| _out, _err = sys.stdout, sys.stderr | |
| sys.argv = ['lidar2map.py', '--help'] | |
| try: | |
| import lidar2map | |
| except SystemExit: | |
| pass | |
| finally: | |
| sys.stdout, sys.stderr = _out, _err | |
| print('Import OK') | |
| run: python -c "$PYCODE" | |
| - name: help ignlidar | |
| shell: bash | |
| env: | |
| PYCODE: | | |
| import sys | |
| _out, _err = sys.stdout, sys.stderr | |
| sys.argv = ['lidar2map.py', '--ignlidar', '--help'] | |
| try: | |
| import lidar2map; lidar2map.main() | |
| except SystemExit: pass | |
| finally: sys.stdout, sys.stderr = _out, _err | |
| print('help ignlidar OK') | |
| run: python -c "$PYCODE" | |
| - name: help ignraster | |
| shell: bash | |
| env: | |
| PYCODE: | | |
| import sys | |
| _out, _err = sys.stdout, sys.stderr | |
| sys.argv = ['lidar2map.py', '--ignraster', '--help'] | |
| try: | |
| import lidar2map; lidar2map.main() | |
| except SystemExit: pass | |
| finally: sys.stdout, sys.stderr = _out, _err | |
| print('help ignraster OK') | |
| run: python -c "$PYCODE" | |
| - name: help ignvecteur | |
| shell: bash | |
| env: | |
| PYCODE: | | |
| import sys | |
| _out, _err = sys.stdout, sys.stderr | |
| sys.argv = ['lidar2map.py', '--ignvecteur', '--help'] | |
| try: | |
| import lidar2map; lidar2map.main() | |
| except SystemExit: pass | |
| finally: sys.stdout, sys.stderr = _out, _err | |
| print('help ignvecteur OK') | |
| run: python -c "$PYCODE" | |
| - name: help fusionner | |
| shell: bash | |
| env: | |
| PYCODE: | | |
| import sys | |
| _out, _err = sys.stdout, sys.stderr | |
| sys.argv = ['lidar2map.py', '--fusionner', '--source', 'dummy.geojson', '--help'] | |
| try: | |
| import lidar2map; lidar2map.main() | |
| except SystemExit: pass | |
| finally: sys.stdout, sys.stderr = _out, _err | |
| print('help fusionner OK') | |
| run: python -c "$PYCODE" | |
| - name: help osm | |
| shell: bash | |
| env: | |
| PYCODE: | | |
| import sys | |
| _out, _err = sys.stdout, sys.stderr | |
| sys.argv = ['lidar2map.py', '--osm', '--help'] | |
| try: | |
| import lidar2map; lidar2map.main() | |
| except SystemExit: pass | |
| finally: sys.stdout, sys.stderr = _out, _err | |
| print('help osm OK') | |
| run: python -c "$PYCODE" | |
| - name: _parser_departements | |
| shell: bash | |
| env: | |
| PYCODE: | | |
| import sys | |
| _out, _err = sys.stdout, sys.stderr | |
| sys.argv=['lidar2map.py','--ignlidar','--help'] | |
| try: import lidar2map | |
| except SystemExit: pass | |
| finally: sys.stdout, sys.stderr = _out, _err | |
| assert lidar2map._parser_departements('83') == ['83'] | |
| assert lidar2map._parser_departements('1-3') == ['01','02','03'] | |
| assert lidar2map._parser_departements('30,35,75') == ['30','35','75'] | |
| assert lidar2map._parser_departements('1-3,75,83') == ['01','02','03','75','83'] | |
| assert lidar2map._parser_departements('2A') == ['2A'] | |
| assert lidar2map._parser_departements('971') == ['971'] | |
| print('_parser_departements OK') | |
| run: python -c "$PYCODE" | |
| - name: _epsilon_depuis_surface_km2 | |
| shell: bash | |
| env: | |
| PYCODE: | | |
| import sys | |
| _out, _err = sys.stdout, sys.stderr | |
| sys.argv=['lidar2map.py','--ignlidar','--help'] | |
| try: import lidar2map | |
| except SystemExit: pass | |
| finally: sys.stdout, sys.stderr = _out, _err | |
| eps = lidar2map._epsilon_depuis_surface_km2 | |
| assert eps(100) == 3 / 111000 | |
| assert eps(500) == 8 / 111000 | |
| assert eps(9000) == 15 / 111000 | |
| assert eps(50000) == 25 / 111000 | |
| assert eps(200000)== 40 / 111000 | |
| print('_epsilon_depuis_surface_km2 OK') | |
| run: python -c "$PYCODE" | |
| - name: _hms | |
| shell: bash | |
| env: | |
| PYCODE: | | |
| import sys | |
| _out, _err = sys.stdout, sys.stderr | |
| sys.argv=['lidar2map.py','--ignlidar','--help'] | |
| try: import lidar2map | |
| except SystemExit: pass | |
| finally: sys.stdout, sys.stderr = _out, _err | |
| assert lidar2map._hms(5) == '5s' | |
| assert lidar2map._hms(90) == '1m30s' | |
| assert lidar2map._hms(3661) == '1h01m01s' | |
| print('_hms OK') | |
| run: python -c "$PYCODE" | |
| - name: normaliser_nom | |
| shell: bash | |
| env: | |
| PYCODE: | | |
| import sys | |
| _out, _err = sys.stdout, sys.stderr | |
| sys.argv=['lidar2map.py','--ignlidar','--help'] | |
| try: import lidar2map | |
| except SystemExit: pass | |
| finally: sys.stdout, sys.stderr = _out, _err | |
| assert lidar2map.normaliser_nom('Gareoult') == 'gareoult' | |
| assert lidar2map.normaliser_nom('Ile-de-France') == 'ile-de-france' | |
| assert lidar2map.normaliser_nom('Saint Jean') == 'saint_jean' | |
| print('normaliser_nom OK') | |
| run: python -c "$PYCODE" | |
| - name: _GEOFABRIK completude | |
| shell: bash | |
| env: | |
| PYCODE: | | |
| import sys | |
| _out, _err = sys.stdout, sys.stderr | |
| sys.argv=['lidar2map.py','--ignlidar','--help'] | |
| try: import lidar2map | |
| except SystemExit: pass | |
| finally: sys.stdout, sys.stderr = _out, _err | |
| codes = [f'{n:02d}' for n in range(1,20)] + [f'{n:02d}' for n in range(21,96)] | |
| codes += ['2A','2B','971','972','973','974','976'] | |
| print(f'Codes a couvrir : {len(codes)}') | |
| print('_GEOFABRIK structure OK') | |
| run: python -c "$PYCODE" | |
| - name: wgs84_to_lamb93_approx | |
| shell: bash | |
| env: | |
| PYCODE: | | |
| import sys | |
| _out, _err = sys.stdout, sys.stderr | |
| sys.argv=['lidar2map.py','--ignlidar','--help'] | |
| try: import lidar2map | |
| except SystemExit: pass | |
| finally: sys.stdout, sys.stderr = _out, _err | |
| x, y = lidar2map.wgs84_to_lamb93_approx(6.0423, 43.3156) | |
| assert 950000 < x < 970000, f'X={x}' | |
| assert 6250000 < y < 6270000, f'Y={y}' | |
| print(f'wgs84_to_lamb93_approx OK : X={x:.0f}, Y={y:.0f}') | |
| run: python -c "$PYCODE" | |
| - name: lamb93_to_wgs84_approx | |
| shell: bash | |
| env: | |
| PYCODE: | | |
| import sys | |
| _out, _err = sys.stdout, sys.stderr | |
| sys.argv=['lidar2map.py','--ignlidar','--help'] | |
| try: import lidar2map | |
| except SystemExit: pass | |
| finally: sys.stdout, sys.stderr = _out, _err | |
| lon, lat = lidar2map.lamb93_to_wgs84_approx(960000, 6258000) | |
| assert 5.9 < lon < 6.2, f'lon={lon}' | |
| assert 43.2 < lat < 43.5, f'lat={lat}' | |
| print(f'lamb93_to_wgs84_approx OK : lon={lon:.4f}, lat={lat:.4f}') | |
| run: python -c "$PYCODE" | |
| - name: Historique lecture ecriture | |
| shell: bash | |
| env: | |
| PYCODE: | | |
| import sys, tempfile | |
| from pathlib import Path | |
| _out, _err = sys.stdout, sys.stderr | |
| sys.argv=['lidar2map.py','--ignlidar','--help'] | |
| try: import lidar2map | |
| except SystemExit: pass | |
| finally: sys.stdout, sys.stderr = _out, _err | |
| tmp = Path(tempfile.mkdtemp()) | |
| lidar2map._HISTORIQUE_PATH = tmp / 'historique.json' | |
| lidar2map._sauver_historique({'type':'osm','nom':'test','mode':'dep','dep':'83'}, 120, '/tmp/out') | |
| hist = lidar2map._lire_historique() | |
| assert len(hist) == 1 | |
| assert hist[0]['nom'] == 'test' | |
| assert hist[0]['dep'] == '83' | |
| assert hist[0]['duree'] == '2m00s' | |
| print('Historique OK') | |
| run: python -c "$PYCODE" | |
| - name: Platform flags | |
| shell: bash | |
| env: | |
| PYCODE: | | |
| import sys | |
| _out, _err = sys.stdout, sys.stderr | |
| sys.argv=['lidar2map.py','--ignlidar','--help'] | |
| try: import lidar2map | |
| except SystemExit: pass | |
| finally: sys.stdout, sys.stderr = _out, _err | |
| import platform | |
| assert lidar2map.WINDOWS == (platform.system() == 'Windows'), f'WINDOWS={lidar2map.WINDOWS}' | |
| assert lidar2map.LINUX == (platform.system() == 'Linux'), f'LINUX={lidar2map.LINUX}' | |
| assert lidar2map.MACOS == (platform.system() == 'Darwin'), f'MACOS={lidar2map.MACOS}' | |
| print(f'Platform flags OK : WINDOWS={lidar2map.WINDOWS} LINUX={lidar2map.LINUX} MACOS={lidar2map.MACOS}') | |
| run: python -c "$PYCODE" |