Logo Zephyrnet

Comprendere e prevedere le isole di calore urbane a Gramener utilizzando le capacità geospaziali di Amazon SageMaker | Servizi Web di Amazon

Data:

Questo è un guest post scritto in collaborazione da Shravan Kumar e Avirat S di Gramener.

Gramer, un Straive L’azienda contribuisce allo sviluppo sostenibile concentrandosi su agricoltura, silvicoltura, gestione delle risorse idriche e energie rinnovabili. Fornendo alle autorità gli strumenti e le conoscenze di cui hanno bisogno per prendere decisioni informate sull’impatto ambientale e sociale, Gramener sta svolgendo un ruolo fondamentale nella costruzione di un futuro più sostenibile.

Le isole di calore urbane (UHI) sono aree all’interno delle città che sperimentano temperature significativamente più elevate rispetto alle aree rurali circostanti. Gli UHI rappresentano una preoccupazione crescente perché possono portare a vari problemi ambientali e sanitari. Per affrontare questa sfida, Gramener ha sviluppato una soluzione che utilizza dati spaziali e tecniche di modellazione avanzate per comprendere e mitigare i seguenti effetti UHI:

  • Discrepanza di temperatura – Gli UHI possono rendere le aree urbane più calde rispetto alle regioni rurali circostanti.
  • Impatto sulla salute – Temperature più elevate negli UHI contribuiscono ad un aumento del 10-20% delle malattie e dei decessi legati al caldo.
  • Consumo di energia - Gli UHI amplificano le richieste di condizionamento dell’aria, determinando un aumento fino al 20% del consumo energetico.
  • Qualità dell'aria - Gli UHI peggiorano la qualità dell’aria, portando a livelli elevati di smog e particolato, che possono aumentare i problemi respiratori.
  • Impatto economico – Gli UHI possono comportare miliardi di dollari in costi energetici aggiuntivi, danni alle infrastrutture e spese sanitarie.

La soluzione GeoBox di Gramener consente agli utenti di accedere e analizzare facilmente i dati geospaziali pubblici attraverso la sua potente API, consentendo un'integrazione perfetta nei flussi di lavoro esistenti. Ciò semplifica l’esplorazione e fa risparmiare tempo e risorse preziose, consentendo alle comunità di identificare rapidamente gli hotspot UHI. GeoBox trasforma quindi i dati grezzi in informazioni fruibili presentate in formati intuitivi come raster, GeoJSON ed Excel, garantendo una chiara comprensione e un'implementazione immediata delle strategie di mitigazione UHI. Ciò consente alle comunità di prendere decisioni informate e implementare iniziative di sviluppo urbano sostenibile, supportando in definitiva i cittadini attraverso una migliore qualità dell’aria, un consumo energetico ridotto e un ambiente più fresco e più sano.

Questo post dimostra come funziona la soluzione GeoBox di Gramener utilizza le funzionalità geospaziali di Amazon SageMaker per eseguire analisi di osservazione della Terra e sbloccare informazioni UHI dalle immagini satellitari. Le funzionalità geospaziali di SageMaker rendono semplice per i data scientist e gli ingegneri del machine learning (ML) creare, addestrare e distribuire modelli utilizzando dati geospaziali. Le funzionalità geospaziali di SageMaker ti consentono di trasformare e arricchire in modo efficiente set di dati geospaziali su larga scala e di accelerare lo sviluppo del prodotto e i tempi di acquisizione delle informazioni con modelli ML pre-addestrati.

Panoramica della soluzione

Geobox mira ad analizzare e prevedere l'effetto UHI sfruttando le caratteristiche spaziali. Aiuta a comprendere come i cambiamenti proposti nelle infrastrutture e nell'uso del territorio possono influenzare i modelli UHI e identifica i fattori chiave che influenzano l'UHI. Questo modello analitico fornisce stime accurate della temperatura della superficie terrestre (LST) a livello granulare, consentendo a Gramener di quantificare i cambiamenti nell'effetto UHI in base ai parametri (nomi degli indici e dati utilizzati).

Geobox consente ai dipartimenti comunali di fare quanto segue:

  • Migliore adattamento climatico pianificazione – Decisioni informate riducono l’impatto degli eventi di caldo estremo.
  • Sostegno all’espansione degli spazi verdi – Più spazi verdi migliorano la qualità dell’aria e della vita.
  • Maggiore collaborazione interdipartimentale – Gli sforzi coordinati migliorano la sicurezza pubblica.
  • Preparazione strategica alle emergenze – Una pianificazione mirata riduce il rischio di emergenze.
  • Collaborazione dei servizi sanitari – La cooperazione porta a interventi sanitari più efficaci.

Flusso di lavoro della soluzione

In questa sezione, discutiamo di come i diversi componenti interagiscono, dall'acquisizione dei dati alla modellazione spaziale e alla previsione, che costituiscono il nucleo della soluzione UHI. La soluzione segue un flusso di lavoro strutturato, con l'obiettivo principale di affrontare gli UHI in una città del Canada.

Fase 1: pipeline di dati

Il satellite Landsat 8 cattura immagini dettagliate dell'area di interesse ogni 15 giorni alle 11:30, fornendo una visione completa del paesaggio e dell'ambiente della città. Viene creato un sistema a griglia con una dimensione della griglia di 48 metri utilizzando la libreria Supermercado Python di Mapbox al livello di zoom 19, consentendo un'analisi spaziale precisa.

Pipeline di dati

Fase 2: Analisi esplorativa

Integrando i livelli di dati sull'infrastruttura e sulla popolazione, Geobox consente agli utenti di visualizzare la distribuzione variabile della città e ricavare informazioni morfologiche urbane, consentendo un'analisi completa della struttura e dello sviluppo della città.

Inoltre, le immagini Landsat della fase 1 vengono utilizzate per ricavare informazioni come il Normalized Difference Vegetation Index (NDVI) e il Normalized Difference Built-up Index (NDBI), con dati meticolosamente adattati alla griglia di 48 metri per coerenza e precisione.

Analisi esplorativa

Vengono utilizzate le seguenti variabili:

  • Temperatura della superficie terrestre
  • Copertura del cantiere
  • NDVI
  • Copertura dei blocchi costitutivi
  • NDBI
  • Area di costruzione
  • albedo
  • Conteggio degli edifici
  • Indice dell'acqua di differenza normalizzata modificata (MNDWI)
  • Altezza dell'edificio
  • Numero di piani e superficie
  • Rapporto superficie pavimento

Fase 3: modello analitico

Questa fase comprende tre moduli, che utilizzano modelli ML sui dati per ottenere informazioni dettagliate sull'LST e sulla sua relazione con altri fattori influenti:

  • Modulo 1: Statistiche zonali e aggregazione – Le statistiche zonali svolgono un ruolo vitale nel calcolo delle statistiche utilizzando i valori del raster dei valori. Implica l'estrazione di dati statistici per ciascuna zona in base al raster della zona. L'aggregazione viene eseguita con una risoluzione di 100 metri, consentendo un'analisi completa dei dati.
  • Modulo 2: Modellazione spaziale – Gramener ha valutato tre modelli di regressione (effetti lineari, spaziali ed effetti spaziali fissi) per svelare la correlazione tra la temperatura della superficie terrestre (LST) e altre variabili. Tra questi modelli, il modello spaziale a effetti fissi ha prodotto il valore medio R quadrato più alto, in particolare per il periodo compreso tra il 2014 e il 2020.
  • Modulo 3: Previsione delle variabili – Per prevedere le variabili a breve termine, Gramener ha utilizzato tecniche di livellamento esponenziale. Queste previsioni hanno aiutato a comprendere i futuri valori LST e le loro tendenze. Inoltre, hanno approfondito l’analisi su scala a lungo termine utilizzando i dati del Rappresentative Concentration Pathway (RCP8.5) per prevedere i valori LST su periodi estesi.

Modello analitico

Acquisizione dati e pre-elaborazione

Per implementare i moduli, Gramener ha utilizzato il notebook geospaziale SageMaker al suo interno Amazon Sage Maker Studio. Il kernel del notebook geospaziale è preinstallato con le librerie geospaziali di uso comune, consentendo la visualizzazione e l'elaborazione diretta dei dati geospaziali all'interno dell'ambiente notebook Python.

Gramener ha utilizzato vari set di dati per prevedere le tendenze dell'LST, tra cui la valutazione degli edifici e i dati sulla temperatura, nonché le immagini satellitari. La chiave della soluzione UHI è stata l'utilizzo dei dati del satellite Landsat 8. Questo satellite per l'imaging della Terra, una joint venture tra USGS e NASA, è servito come componente fondamentale del progetto.

Grazie alla RicercaRasterDataCollection API, SageMaker fornisce una funzionalità appositamente creata per facilitare il recupero di immagini satellitari. Gramener ha utilizzato questa API per recuperare i dati satellitari Landsat 8 per la soluzione UHI.

I SearchRasterDataCollection L'API utilizza i seguenti parametri di input:

  • Arn. – L'Amazon Resource Name (ARN) della raccolta dati raster utilizzata nella query
  • Area d'interesse – Un poligono GeoJSON che rappresenta l'area di interesse
  • Filtro intervallo di tempo – L'intervallo di tempo di interesse, indicato come {StartTime: <string>, EndTime: <string>}
  • ProprietàFiltri – È inoltre possibile incorporare filtri di proprietà supplementari, come ad esempio le specifiche per la massima copertura nuvolosa accettabile

L'esempio seguente dimostra come è possibile interrogare i dati Landsat 8 tramite l'API:

search_params = {
    "Arn": "arn:aws:sagemaker-geospatial:us-west-2:378778860802:raster-data-collection/public/gmqa64dcu2g9ayx1", # NASA/USGS Landsat
    "RasterDataCollectionQuery": {
        "AreaOfInterest": {
            "AreaOfInterestGeometry": {
                "PolygonGeometry": {
                    "Coordinates": coordinates
                }
            }
        },
        "TimeRangeFilter": {
            "StartTime": "2014-01-01T00:00:00Z",
            "EndTime": "2020-12-31T23:59:59Z",
        },
        "PropertyFilters": {
            "Properties": [{"Property": {"EoCloudCover": {"LowerBound": 0, "UpperBound": 20.0}}}],
            "LogicalOperator": "AND",
        }
    },
}

response = geospatial_client.search_raster_data_collection(**search_params)

Per elaborare dati satellitari su larga scala, Gramener ha utilizzato Elaborazione di Amazon SageMaker con il contenitore geospaziale. SageMaker Processing consente la scalabilità flessibile dei cluster di elaborazione per gestire attività di diverse dimensioni, dall'elaborazione di un singolo isolato alla gestione di carichi di lavoro su scala planetaria. Tradizionalmente, la creazione e la gestione manuale di un cluster di elaborazione per tali attività era costosa e dispendiosa in termini di tempo, in particolare a causa delle complessità legate alla standardizzazione di un ambiente adatto alla gestione dei dati geospaziali.

Ora, con il contenitore geospaziale specializzato di SageMaker, la gestione e l'esecuzione dei cluster per l'elaborazione geospaziale è diventata più semplice. Questo processo richiede uno sforzo di codifica minimo: è sufficiente definire il carico di lavoro e specificare la posizione dei dati geospaziali Servizio di archiviazione semplice Amazon (Amazon S3) e selezionare il contenitore geospaziale appropriato. SageMaker Processing fornisce quindi automaticamente le risorse necessarie del cluster, facilitando l'esecuzione efficiente delle attività geospaziali su scale che vanno dal livello della città al livello del continente.

Processando

SageMaker gestisce completamente l'infrastruttura sottostante richiesta per il lavoro di elaborazione. Alloca le risorse del cluster per la durata del lavoro e le rimuove al completamento del lavoro. Infine, i risultati del processo di elaborazione vengono salvati nel bucket S3 designato.

Un lavoro di elaborazione SageMaker che utilizza l'immagine geospaziale può essere configurato come segue dal notebook geospaziale:

from sagemaker import get_execution_role
from sagemaker.sklearn.processing import ScriptProcessor
from sagemaker.processing import ProcessingInput, ProcessingOutput

execution_role_arn = get_execution_role()

geospatial_image_uri = '081189585635.dkr.ecr.us-west-2.amazonaws.com/sagemaker-geospatial-v1-0:latest'
processor = ScriptProcessor(
    command=['python3'],
    image_uri=geospatial_image_uri,
    role=execution_role_arn,
    instance_count=20,
    instance_type='ml.m5.xlarge',
    base_job_name='geospatial-processing-spectral-indices'
)

Il parametro "instance_count" definisce quante istanze deve utilizzare il lavoro di elaborazione e "instance_type" definisce quale tipo di istanza deve essere utilizzato.

L'esempio seguente mostra come viene eseguito uno script Python sul cluster del lavoro di elaborazione. Quando viene richiamato il comando run, il cluster si avvia e fornisce automaticamente le risorse cluster necessarie:

processor.run(
    code='calculate_variables.py',
    inputs=[
        ProcessingInput(
            source=s3_manifest_url,
            destination='/opt/ml/processing/input_data/',
            s3_data_type="ManifestFile",
            s3_data_distribution_type="ShardedByS3Key"
        ),
    ],
    outputs=[
        ProcessingOutput(
            source='/opt/ml/processing/output_data/',
            destination=s3_output_prefix_url
        )
    ]
)

Modellazione spaziale e previsioni LST

Nel processo di elaborazione vengono calcolate una serie di variabili, tra cui la radianza spettrale della parte superiore dell'atmosfera, la temperatura di luminosità e la riflettanza di Landsat 8. Inoltre, vengono calcolate variabili morfologiche come il rapporto di superficie (FAR), la copertura del sito di costruzione, la copertura degli elementi costitutivi e il valore di entropia di Shannon.

Il codice seguente dimostra come è possibile eseguire l'aritmetica delle bande:

def calculate_ndvi(nir08, red): 
    return (nir08 - red) / (nir08 + red) 
 
def calculate_ndbi(swir16, nir08): 
    return (swir16 - nir08) / (swir16 + nir08) 
 
def calculate_st(bt): 
    return ((bt * 0.00341802) + 149.0) - 273 
 
def indices_calc(data): 
    with concurrent.futures.ThreadPoolExecutor() as executor: 
        ndvi_future = executor.submit(calculate_ndvi, data.sel(band="SR_B5"), data.sel(band="SR_B4")) 
        ndbi_future = executor.submit(calculate_ndbi, data.sel(band="SR_B6"), data.sel(band="SR_B5")) 
        st_future = executor.submit(calculate_st, data.sel(band="ST_B10")) 
 
        ndvi = ndvi_future.result() 
        ndbi = ndbi_future.result() 
        st = st_future.result() 
 
    ndvi.attrs = data.attrs 
    ndbi.attrs = data.attrs 
    st.attrs = data.attrs 
 
    return ndvi, ndbi, st 

Dopo che le variabili sono state calcolate, vengono eseguite le statistiche zonali per aggregare i dati per griglia. Ciò comporta il calcolo delle statistiche in base ai valori di interesse all'interno di ciascuna zona. Per questi calcoli è stata utilizzata una griglia di circa 100 metri.

def process_iteration(st, ndvi, ndmi, date, city_name): 
    datacube['st'] = (st.dims, st.values) 
    datacube['ndvi'] = (ndvi.dims, ndvi.values) 
    datacube['ndmi'] = (ndmi.dims, ndmi.values) 
    df = datacube.groupby("id").mean().to_dataframe().reset_index() 
    merged_grid = hexgrid_utm.join(df, on='id', how='left', lsuffix='_')[['id', 'hex_id', 'geometry', 'st', 'ndvi', 'ndmi']] 
    merged_grid.to_file(f"{DATA}/{city_name}/{city_name}_outputs_{date}.geojson", driver='GeoJSON') 
    print("Working on:", date) 
 
def iterative_op(city_json, st, ndvi, ndmi, city_name): 
    with concurrent.futures.ThreadPoolExecutor() as executor: 
        futures = [ 
            executor.submit(process_iteration, st[i], ndvi[i], ndmi[i], date, city_name) 
            for i, _ in enumerate(city_json.time) 
            for date in city_json.date 
        ] 
        for future in concurrent.futures.as_completed(futures): 
            future.result() 
 
    print('Process completed') 

Dopo aver aggregato i dati, viene eseguita la modellazione spaziale. Gramener ha utilizzato metodi di regressione spaziale, come la regressione lineare e gli effetti fissi spaziali, per tenere conto della dipendenza spaziale nelle osservazioni. Questo approccio facilita la modellazione della relazione tra variabili e LST a livello micro.

Il codice seguente illustra come è possibile eseguire tale modellazione spaziale:

features = [ 
    'ndvi', 
    'ndbi', 
    'st', 
    'build_count', 
    'bbc' 
] 
 
def compute_spatial_weights(df, k=8): 
    knn = KNN.from_dataframe(df, k=k) 
    return df[features].apply(lambda y: weights.spatial_lag.lag_spatial(knn, y)).rename(columns=lambda c: 'w_' + c) 
 
def ordinary_least_squares(df_year, spatial=False): 
    formula = f"lst ~ {' + '.join(features)}"  
    if spatial: 
        df_year = df_year.join(compute_spatial_weights(df_year)) 
        formula += f" + {' + '.join(['w_' + f for f in features])}"  
     
    return smf.ols(formula, data=df_year).fit() 
 
def process(df, year): 
    df_year = pd.merge(df[df['year'] == year].fillna(0), grids[['idx', 'name']], on='idx') 
    ols_model = ordinary_least_squares(df_year) 
    ols_spatial_model = ordinary_least_squares(df_year, spatial=True) 
    ols_spatial_fe_model = ordinary_least_squares(df_year, spatial=True) 
     
    return { 
        'year': year, 
        'ols_model': ols_model, 
        'ols_spatial_model': ols_spatial_model, 
        'ols_spatial_fe_model': ols_spatial_fe_model, 
        'ols_r2': [ols_model.rsquared, ols_spatial_model.rsquared, ols_spatial_fe_model.rsquared] 
    } 

Gramener ha utilizzato il livellamento esponenziale per prevedere i valori LST. Lo smoothing esponenziale è un metodo efficace per la previsione di serie temporali che applica medie ponderate ai dati passati, con i pesi che diminuiscono esponenzialmente nel tempo. Questo metodo è particolarmente efficace nel livellare i dati per identificare tendenze e modelli. Utilizzando il livellamento esponenziale, diventa possibile visualizzare e prevedere le tendenze LST con maggiore precisione, consentendo previsioni più accurate dei valori futuri basate su modelli storici.

Per visualizzare le previsioni, Gramener ha utilizzato il notebook geospaziale SageMaker con librerie geospaziali open source per sovrapporre le previsioni del modello su una mappa di base e fornisce set di dati geospaziali visualizzati a più livelli direttamente all'interno del notebook.

Visualizzazione

Conclusione

Questo post ha dimostrato come Gramener stia consentendo ai clienti di prendere decisioni basate sui dati per ambienti urbani sostenibili. Con SageMaker, Gramener ha ottenuto un notevole risparmio di tempo nell'analisi UHI, riducendo i tempi di elaborazione da settimane a ore. Questa rapida generazione di informazioni consente ai clienti di Gramener di individuare le aree che richiedono strategie di mitigazione dell'UHI, pianificare in modo proattivo lo sviluppo urbano e progetti infrastrutturali per ridurre al minimo l'UHI e acquisire una comprensione olistica dei fattori ambientali per una valutazione completa del rischio.

Scopri il potenziale dell'integrazione dei dati di osservazione della Terra nei tuoi progetti di sostenibilità con SageMaker. Per ulteriori informazioni, fare riferimento a Inizia a utilizzare le funzionalità geospaziali di Amazon SageMaker.


Informazioni sugli autori

Abhishek Mittal è un Solutions Architect per il team mondiale del settore pubblico presso Amazon Web Services (AWS), dove lavora principalmente con partner ISV di tutti i settori fornendo loro indicazioni architetturali per la creazione di un'architettura scalabile e l'implementazione di strategie per promuovere l'adozione dei servizi AWS. La sua passione è la modernizzazione delle piattaforme tradizionali e la sicurezza nel cloud. Fuori dal lavoro è un appassionato di viaggi.

Janosch Woschitz è un Senior Solutions Architect presso AWS, specializzato in AI/ML. Con oltre 15 anni di esperienza, supporta i clienti a livello globale nello sfruttamento dell'intelligenza artificiale e del machine learning per soluzioni innovative e nella creazione di piattaforme machine learning su AWS. La sua esperienza spazia dall'apprendimento automatico, all'ingegneria dei dati e ai sistemi distribuiti scalabili, arricchita da un forte background nell'ingegneria del software e dalla competenza nel settore in settori come la guida autonoma.

Shravan Kumar è un Senior Director of Client Success presso Gramener, con dieci anni di esperienza in analisi aziendale, evangelizzazione dei dati e creazione di profonde relazioni con i clienti. Possiede solide basi nella gestione dei clienti e nella gestione degli account nel campo dell'analisi dei dati, dell'intelligenza artificiale e del machine learning.

Avirat S è uno scienziato di dati geospaziali presso Gramener, che sfrutta l'intelligenza artificiale/ML per ottenere informazioni approfondite dai dati geografici. La sua esperienza risiede nella gestione delle catastrofi, nell'agricoltura e nella pianificazione urbana, dove la sua analisi informa i processi decisionali.

spot_img

L'ultima intelligenza

spot_img