Страницы

Добро пожаловать

< Выберите раздел для просмотра

вторник, 16 августа 2016 г.

Python в ArcGIS. Создание атрибутивных SQL-запросов для инструментов геообработки. 11

    Часто в теле скрипта приходится формировать выражения для инструментов геообработки, например следующего вида:
" OBJECTID = 1340 " к полю long, " SUBJECT = 'Республика Адыгея' " к текстовому полю,
 ну или совсем что-то составное:
" (NAME = 'Железнодорожная станция' OR NAME = 'Железнодорожный вокзал') AND (CITY = 'Инта' OR CITY = 'Ульяновск' OR CITY = 'Тында') AND ID_CODE IN (34, 37, 43, 47)".

"""
query_field_1 = "OBJECTID"
query_value_1 = 1340
expression = """ {0} = {1} """.format(query_field_1, query_value_1)
print expression
arcpy.MakeTableView(in_table="table_1", out_view="layer_1", where_clause=expression)
"""

"""
query_field_1 = "SUBJECT"
query_value_1 = u'Республика Адыгея'
expression = """ {0} = {1} """.format(query_field_1, query_value_1)
print expression
arcpy.MakeTableView(in_table="table_1", out_view="layer_1", where_clause=expression)
"""

"""
query_field_1 = "NAME"
query_value_1 = u"Железнодорожная станция"
query_value_2 = u"Железнодорожный вокзал"
query_field_2 = "CITY"
city_1 = u"Инта"
city_2 = u"Ульяновск"
city_3 = u"Тында"
query_field_3 = "ID_CODES"
codes = (34, 37, 43, 47)
expression = """ ({0} = '{1}' OR {0} = '{2}') AND ({3} = '{4}' OR {3} = '{5}' OR {3} = '{6}') AND {7} IN ({8}) """.format(query_field_1, query_value_1.encode('utf-8'), query_value_2.encode('utf-8'), query_field_2, city_1.encode('utf-8'), city_2.encode('utf-8'), city_3.encode('utf-8'), query_field_3, ",".join(map(str, codes)))
print expression
arcpy.MakeTableView(in_table="table_1", out_view="layer_1", where_clause=expression)
"""


Комментариев нет:

Отправить комментарий