Lo strumento Geo-Zone offre un'API basata su GraphQL che consente di interrogare i dati delle zone di neve, vento e sisma direttamente dalle proprie applicazioni, script o flussi di calcolo, senza dover aprire l'interfaccia web.
Introduzione
L'API è utilizzabile in tre modi. Per Python e C# sono disponibili librerie client già pronte, che gestiscono automaticamente autenticazione, composizione delle richieste ed elaborazione delle risposte. Si scrive una chiamata di funzione tipizzata nel proprio linguaggio e si riceve in cambio un oggetto dati strutturato. In alternativa, è possibile inviare query GraphQL direttamente all'endpoint HTTPS, indipendentemente dal linguaggio di programmazione o dalla piattaforma utilizzata.
Documentazione e risorse
La documentazione completa dell'API, con esploratore interattivo dello schema, query disponibili ed esempi di richieste, è disponibile nella Documentazione API.
Autenticazione
Alcune query, come l'elenco delle norme disponibili e delle zone di carico di un paese, sono utilizzabili senza autenticazione. Per interrogare i valori di carico calcolati per una posizione specifica è necessario un API-Token, collegato al pacchetto Geo-Zone Tool. Questo token corrisponde all'API Key ed è descritto nella sezione Key Management.
Per ogni richiesta di carico, il contingente viene ridotto di un'unità. Per poter effettuare richieste di carico senza limitazioni, è necessario un pacchetto Geo-Zone Tool.
Avvio rapido (Python)
Di seguito viene mostrato come recuperare i dati delle zone di carico con la libreria Python. Installare prima la libreria client:
pip install dlubal.api.geo-zone-tool
Per interrogare valori di carico specifici è necessario un API-Token. L'esempio seguente determina il carico della neve secondo EN 1991-1-3 per una posizione a Monaco di Baviera. A tale scopo sono attualmente disponibili i tipi di carico SNOW, WIND, SEISMIC e TORNADO:
from dlubal.api import geo_zone_tool
from dlubal.api.geo_zone_tool import LoadZoneType, Language
gzt = geo_zone_tool.GeoZoneTool("")
result = gzt.get_load_zone_characteristics(
#parametri necessari
address="45.985,14.734", #indirizzo o coordinate (latitudine, longitudine)
load_zone_type=LoadZoneType.SNOW, #WIND SNOW SEISMIC TORNADO
#parametri opzionali
# standard="EN 1991-1-3",
# annex="Germany",
# layer_id=1,
# language=Language.EN
)
#print(result)
print(result.geo_location.city)
for chars in result.characteristics:
print(f"{chars.standard} / {chars.annex}")
zone = chars.zone_characteristics
print(f" Zone: {zone.zone.value}")
for c in zone.characteristics:
print(f" {c.name} = {c.calculated_value}")
La risposta contiene la posizione risolta, la zona di carico della neve assegnata e il valore caratteristico s_k in kN/m². In assenza di parametri opzionali, viene utilizzata la mappa attuale per l'indirizzo selezionato. La struttura coerente della risposta consente di utilizzare lo stesso codice anche per i carichi del vento e sismici.
Munich
EN 1991-1-3 / DIN EN 1991-1-3
Zone: 1a*
s_k = 1.15