Инструмент Geo-Zone предоставляет API на основе GraphQL, с помощью которого можно запрашивать данные о снеговых, ветровых и сейсмических зонах непосредственно из собственных приложений, скриптов или вычислительных процессов, не открывая веб-интерфейс.
Начало работы
API можно использовать тремя способами. Для Python и C# доступны готовые клиентские библиотеки, которые автоматически выполняют аутентификацию, формирование запросов и обработку ответов. Вы пишете типизированный вызов функции на своем языке и получаете структурированный объект данных в ответ. В качестве альтернативы можно отправлять запросы GraphQL непосредственно на конечную точку HTTPS, независимо от используемого языка программирования или платформы.
Документация и ресурсы
Полную документацию API с интерактивным обозревателем схемы, доступными запросами и примерами запросов вы найдете в API документации.
Аутентификация
Некоторые запросы, например, перечень доступных нормативов и зон нагрузок страны, можно использовать без аутентификации. Для запроса расчетных значений нагрузок для конкретного местоположения требуется API-токен, привязанный к вашему пакету Geo-Zone Tool. Этот токен соответствует API-ключу и описан в разделе Управление ключами.
При каждом запросе нагрузки квота уменьшается на один счетчик. Чтобы выполнять запросы нагрузок без ограничений, вам необходим пакет Geo-Zone Tool.
Быстрый старт (Python)
Далее показано, как получать данные о зонах нагрузок с помощью библиотеки Python. Сначала установите клиентскую библиотеку:
pip install dlubal.api.geo-zone-tool
Для запроса конкретных значений нагрузок требуется API-токен. В следующем примере определяется снеговая нагрузка по DIN EN 1991-1-3 для местоположения в Мюнхене. В настоящее время доступны следующие типы нагрузок: SNOW, WIND, SEISMIC и 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(
#необходимые параметры
address="45.985,14.734", #адрес или координаты (широта, долгота)
load_zone_type=LoadZoneType.SNOW, #WIND SNOW SEISMIC TORNADO
#необязательные параметры
# 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}")
Ответ содержит определенное местоположение, присвоенную зону снеговой нагрузки и характеристическое значение s_k в кН/м². При этом без необязательных параметров используется актуальная карта для выбранного адреса. Постоянная структура ответа позволяет использовать тот же код и для ветровых и сейсмических нагрузок.
Мюнхен
EN 1991-1-3 / DIN EN 1991-1-3
Зона: 1a*
s_k = 1.15