lidar_cmn
Python package che consente il download dei dati LiDAR di Città Metropolitana di Napoli
I dati sono il DTM e il DSM delle riprese LiDAR effettuate dalla Nuova Avioriprese nel 2009, integrate dal volo 2012, prodotti nell'ambito del progetto Cecosca (Centro Satellitare Cave) e pubblicati dal SIT di Città Metropolitana di Napoli. Ciascuno dei due modelli è diviso in 5451 tasselli da 500 × 500 m, con risoluzione di 1 m, in formato ESRI ASCII grid (.asc).
Documentazione: maxdragonheart.github.io/lidar_cmn
Installazione
pip install lidar-cmn
Uso
Download dei tasselli di un comune
from pathlib import Path
from lidar_cmn.download import download_data
from lidar_cmn.vector import read_boundaries, read_lidar_index, target_area
selection = target_area(
boundaries=read_boundaries(),
link_source=read_lidar_index(lidar_type="dtm"),
target="Procida"
)
download_data(selection=selection, output_folder=Path("lidar"), output_folder_name="dtm")
target_area seleziona i tasselli che si sovrappongono al confine del comune indicato in target, con il nome della colonna COMUNE dei limiti amministrativi, o dell'intera Città Metropolitana con target=None. Con use_bbox=True seleziona invece i tasselli che si sovrappongono al rettangolo d'ingombro dell'area, come nelle versioni precedenti alla 2.0.0.
Download dell'intero dataset
for lidar_type in ["dtm", "dsm"]:
download_data(
selection=read_lidar_index(lidar_type=lidar_type),
output_folder=Path("lidar"),
output_folder_name=lidar_type
)
Con target=None, invece, target_area seleziona 5158 tasselli su 5451: esclude quelli che non si sovrappongono ai confini comunali, cioè 284 dei 304 tasselli con appartenen = "Extra Prov Na" e 9 tasselli con appartenen = "Prov Na".
Interruzioni ed errori
download_datasalta i file già presenti nella cartella di destinazione: se il download si interrompe, basta rilanciarlo per riprenderlo. Conoverwrite=Truescarica di nuovo tutti i file.- Ogni file viene scritto in un file temporaneo
.parte rinominato solo quando il download è completo e il file è un ESRI ASCII grid valido. - Ogni file viene tentato fino a
retriesvolte (3), tranne in caso di errori definitivi come 404 Not Found;timeout(30 s) è l'attesa massima della risposta del server. - Un file non scaricato non ferma gli altri: alla fine
download_datasollevaDownloadError, con gli URL dei file mancanti inDownloadError.urls. Il download si ferma dopomax_consecutive_failures(5) file falliti di seguito, ad esempio quando il server non è raggiungibile.
Indice dei tasselli
read_lidar_index legge l'indice dei tasselli, con l'URL di ciascun file nella colonna url. Con source="local" (predefinito) legge quello incluso nel package; con source="wfs" legge quello ufficiale dal servizio WFS di Città Metropolitana di Napoli, utile se gli indirizzi dei file dovessero cambiare di nuovo.
Certificato SSL del server
Il server di Città Metropolitana di Napoli, sit.cittametropolitana.na.it, invia una catena di certificati incompleta: manca il certificato intermedio Sectigo Public Server Authentication CA DV R36. Senza correzioni Python non riesce a verificarlo e i download falliscono con CERTIFICATE_VERIFY_FAILED, sempre su Linux e macOS, a volte su Windows. Il package include il certificato intermedio mancante e le radici di certifi e li usa in tutte le connessioni HTTPS, con la verifica dei certificati sempre attiva: non serve nessuna configurazione. Origine del problema, soluzione e manutenzione sono descritte in docs/certificato_ssl.md.
Messaggi di log
Il package non configura il logging. Per vederne i messaggi:
import logging
from lidar_cmn.config import log_format
logging.basicConfig(level=logging.INFO, format=log_format)
Sistema di riferimento
L'indice dei tasselli e i limiti amministrativi sono in EPSG:32633 (WGS 84 / UTM zona 33N). Le coordinate dei file .asc sono nello stesso sistema, ma i file non lo dichiarano: non sono accompagnati da un .prj.
Test
pytest # tutti i test
pytest -m "not network" # esclude i test che usano i server di Città Metropolitana di Napoli
La GitHub Action .github/workflows/test.yml esegue i test a ogni push e pull request, e ogni lunedì alle 06:00 UTC:
- i test offline su Linux, Windows e macOS, con Python 3.10, 3.11, 3.12, 3.13 e 3.14;
- i test
networksugli stessi sistemi operativi, con Python 3.10 e 3.14. Tra questi c'è la verifica del certificato disit.cittametropolitana.na.it: l'esecuzione settimanale segnala se il server cambia certificato.
Pubblicazione su PyPI
La GitHub Action .github/workflows/release.yml pubblica il package su PyPI ogni volta che viene pubblicata una release su GitHub. Creare e pushare solo un tag, senza release, non avvia la pubblicazione.
Per pubblicare una nuova versione:
- aggiornare
versioninpyproject.tomle il CHANGELOG, poi unire le modifiche inmain; - su GitHub, da Releases → Draft a new release, creare un tag uguale alla versione, per esempio
2.0.0(va bene anchev2.0.0), e pubblicare la release.
La Action:
- verifica che il tag corrisponda alla versione di
pyproject.tomle che il package sialidar-cmn, altrimenti si ferma senza pubblicare; - esegue i test offline;
- prepara il wheel e il sorgente (
python -m build), li controlla contwine checke verifica che il wheel contenga i dati digeodatae il certificato dicertificates; - li pubblica su PyPI con il Trusted Publishing dell'ambiente GitHub
pypi, senza token salvati nei secret.
Configurazione da fare una sola volta, prima della prima release:
- su PyPI, nel progetto
lidar-cmn, da Manage → Publishing, aggiungere un trusted publisher GitHub con questi dati: ownerMaxDragonheart, repositorylidar_cmn, workflowrelease.yml, ambientepypi; - su GitHub, nel repository, da Settings → Environments, creare l'ambiente
pypi. È facoltativo: se manca, GitHub lo crea al primo avvio. Lì si possono aggiungere regole di protezione, per esempio l'approvazione manuale prima della pubblicazione.
Novità
Vedi il CHANGELOG.
Questo progetto non è collegato né supportato da Città Metropolitana di Napoli.
Metadata
Release files for lidar-cmn 2.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| lidar_cmn-2.0.0.tar.gz | 955.0 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| lidar_cmn-2.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.9 MB
Release files / lidar_cmn-2.0.0.tar.gz
| Download URL | lidar_cmn-2.0.0.tar.gz |
|---|---|
| Size | 955.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d0ba500ee3c1708c71d8b12d6982b11641d31fc2b8514a79b80cc8ff853a6ec9
|
|
BLAKE2b-256 checksum How to use checksums |
8bdf86266170921f360b3f2ac95af60fd450e1564829505b2160c588f4385088
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.
Transparency logRelease files / lidar_cmn-2.0.0-py3-none-any.whl
| Download URL | lidar_cmn-2.0.0-py3-none-any.whl |
|---|---|
| Size | 967.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
47e154f990a647b8e2e10ab452571864bace19d07f94a657453c64fa3ba9ee12
|
|
BLAKE2b-256 checksum How to use checksums |
97eab763122794cfbd7eb315d4e85c4e7a9682038e14eccd9d6ab9a42c4b75cc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.
Transparency logSecurity for lidar-cmn 2.0.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for lidar_cmn-2.0.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.