Skip to main content

User Guide

This guide is for developers who consume dlubal.api.geo_zone_tool in their applications.

Install

pip install dlubal.api.geo_zone_tool

Import

from dlubal.api import geo_zone_tool

Authentication

A token is optional. These methods work without one:

  • get_geo_locations
  • get_load_zone_standards
  • get_hazard_data

The remaining methods require a token; calling them without one raises a ValueError.

from dlubal.api import geo_zone_tool

# Anonymous client (public methods only)
geo_zone = geo_zone_tool.GeoZoneTool()

# Authenticated client (all methods)
geo_zone = geo_zone_tool.GeoZoneTool("<your-token>")

Sync vs Async

GeoZoneTool is synchronous. AsyncGeoZoneTool exposes the same methods as coroutines for use inside an event loop.

import asyncio
from dlubal.api import geo_zone_tool

async def main():
    geo_zone = geo_zone_tool.AsyncGeoZoneTool("<your-token>")
    user = await geo_zone.get_user_data()
    print(user)

asyncio.run(main())

The examples below use the sync client.

Common Enums

  • geo_zone_tool.Language (EN, DE, IT, CS, FR, ES, PT, PL, RU, ZH)
  • geo_zone_tool.LoadZoneType (SNOW, WIND, SEISMIC, TORNADO)
  • geo_zone_tool.ScreenshotType (PNG, JPEG)
  • geo_zone_tool.RiskCategory (I, II, III, IV)
  • geo_zone_tool.SiteClass (DEFAULT, A, B, BC, C, CD, D, DE, E)
  • geo_zone_tool.AsceVersion (ASCE22, ASCE16)

Examples

Find Locations

from dlubal.api import geo_zone_tool

geo_zone = geo_zone_tool.GeoZoneTool()
locations = geo_zone.get_geo_locations(
    address="Flugplatzweg 6, 14913, Germany",
    language=geo_zone_tool.Language.EN,
)

for loc in locations.locations:
    print(loc)

Get User Info

from dlubal.api import geo_zone_tool

geo_zone = geo_zone_tool.GeoZoneTool("<your-token>")
user = geo_zone.get_user_data()
print(user)

Get Available Standards

from dlubal.api import geo_zone_tool

geo_zone = geo_zone_tool.GeoZoneTool()
standards = geo_zone.get_load_zone_standards(
    country_code="DE",
    language=geo_zone_tool.Language.EN,
)

print(f"{standards.country} ({standards.country_code})")
for group in standards.type_groups:
    print(f"  {group.name}")
    for item in group.load_zones:
        print(f"    {item.standard.name} / {item.annex.name}")

Get Load Zone Characteristics

from dlubal.api import geo_zone_tool

geo_zone = geo_zone_tool.GeoZoneTool("<your-token>")
result = geo_zone.get_load_zone_characteristics(
    address="Flugplatzweg 6, 14913, Germany",
    load_zone_type=geo_zone_tool.LoadZoneType.SNOW,
    standard="EN 1991-1-3",
    annex="DIN EN 1991-1-3",
    layer_id=1,
    language=geo_zone_tool.Language.EN,
)

print(result)

Get Screenshot (Base64)

from dlubal.api import geo_zone_tool

geo_zone = geo_zone_tool.GeoZoneTool("<your-token>")
screenshot = geo_zone.get_load_zone_screenshot(
    address="Flugplatzweg 6, 14913, Germany",
    load_zone_type=geo_zone_tool.LoadZoneType.SNOW,
    standard="EN 1991-1-3",
    annex="DIN EN 1991-1-3",
    layer_id=1,
    zoom=6,
    screenshot_type=geo_zone_tool.ScreenshotType.JPEG,
    screenshot_quality=80,
)

print(screenshot.screenshot[:40])  # base64 prefix

Stream PDF Progress

from dlubal.api import geo_zone_tool

geo_zone = geo_zone_tool.GeoZoneTool("<your-token>")
for msg in geo_zone.get_load_zone_pdf(
    address="Flugplatzweg 6, 14913, Germany",
    standard="EN 1991-1-3",
    annex="DIN EN 1991-1-3",
    layer_id=1,
):
    print(f"[{msg.current_step}/{msg.steps}] {msg.message}")

Get Final PDF (Base64)

from dlubal.api import geo_zone_tool

geo_zone = geo_zone_tool.GeoZoneTool("<your-token>")
pdf_result = geo_zone.get_load_zone_pdf_result(
    address="Flugplatzweg 6, 14913, Germany",
    standard="EN 1991-1-3",
    annex="DIN EN 1991-1-3",
    layer_id=1,
)

if pdf_result is not None:
    print(pdf_result.name)
    print(pdf_result.pdf[:40])  # base64 prefix

Get Seismic Hazard Data (ASCE)

Returns seismic hazard / design map parameters from USGS for a given US location, risk category, site class, and ASCE version. asce_version defaults to AsceVersion.ASCE22.

from dlubal.api import geo_zone_tool

geo_zone = geo_zone_tool.GeoZoneTool()
result = geo_zone.get_hazard_data(
    latitude="37.7749",
    longitude="-122.4194",
    risk_category=geo_zone_tool.RiskCategory.II,
    site_class=geo_zone_tool.SiteClass.D,
    asce_version=geo_zone_tool.AsceVersion.ASCE22,
)

if result.data is not None:
    data = result.data
    print(f"reference: {result.reference_document}")
    print(f"Sds = {data.sds}")
    print(f"Sd1 = {data.sd1}")
    print(f"SDC = {data.sdc}")

Error Handling

All SDK errors derive from geo_zone_tool.GeoZoneError:

  • ValidationError — invalid input (empty strings, out-of-range numbers). It subclasses ValueError, so except ValueError still catches it. A wrong enum type raises TypeError.
  • GraphQLError — the server returned a GraphQL errors array.
  • TransportError — HTTP or WebSocket transport failure.
from dlubal.api import geo_zone_tool
from dlubal.api.geo_zone_tool import GeoZoneError

try:
    geo_zone_tool.GeoZoneTool().get_geo_locations(address="Berlin")
except GeoZoneError as exc:
    print(f"GeoZone call failed: {exc}")

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dlubal_api_geo_zone_tool-0.2.0.tar.gz (27.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dlubal_api_geo_zone_tool-0.2.0-py3-none-any.whl (25.4 kB view details)

Uploaded Python 3

File details

Details for the file dlubal_api_geo_zone_tool-0.2.0.tar.gz.

File metadata

  • Download URL: dlubal_api_geo_zone_tool-0.2.0.tar.gz
  • Upload date:
  • Size: 27.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for dlubal_api_geo_zone_tool-0.2.0.tar.gz
Algorithm Hash digest
SHA256 58c0e4d1a52e9b83acaf6c103c6e154f98b6ab8ad29a0e032fcdd5849c124745
MD5 a5f1bfd4c514c270f16275f4ee261b64
BLAKE2b-256 4d1c1f80bc45c2bf57a32184b43621c4f2bba421bdfccf78ab4a8e60821939f8

See more details on using hashes here.

File details

Details for the file dlubal_api_geo_zone_tool-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for dlubal_api_geo_zone_tool-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7fdcaef21d8d0fe39a68c0383451e6f3de670e704917b2a76f074f7aca8c5e5f
MD5 5346ee8117745ad5d3b6dc13a48dca50
BLAKE2b-256 59dad2f983caaee594e5675ae25531ac8ab27dd2d5d41f2df1fd6ad4b7cc4d76

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page