Кто-нибудь знает, где я могу найти образец шейп-файла, который содержит нулевые записи (предпочтительно шейп-файл полигона)?
Я не уверен, как создать один с пустыми записями.
Кто-нибудь знает, где я могу найти образец шейп-файла, который содержит нулевые записи (предпочтительно шейп-файл полигона)?
Я не уверен, как создать один с пустыми записями.
Ответы:
Имейте в виду, что многие программы, читающие файлы SHP, не поддерживают нулевые значения для геометрии. Даже у более старых версий ArcView были проблемы.
Я создал образец здесь: http://www.routeware.dk/temp/shp_null_sample.zip. Он имеет 3 записи, у 2 нет геометрии.
Я предполагаю, что вы имеете в виду нуль для столбца геометрии / формы, потому что шейп-файлы не поддерживают ноль для любого типа поля, кроме геометрии и (я слышу) для полей даты.
Приведенный ниже код создает 1 шейп-файл с 1 записью / объектом, который имеет нулевую поли-геометрию.
import arcpy
import os
outfc = r'c:\temp\outfc.shp'
arcpy.env.workspace = os.path.dirname(outfc)
arcpy.CreateFeatureclass_management(arcpy.env.workspace,os.path.basename(outfc), 'polygon')
cur = arcpy.InsertCursor(outfc)
row = cur.newRow()
cur.insertRow(row)
del(row)
del(cur)
r = arcpy.CheckGeometry_management(outfc,'in_memory\\outtable')
print r.getMessages()
Я запускаю его и получаю то, чего я ожидал
ПРЕДУПРЕЖДЕНИЕ 000442: нулевая геометрия в 0 в c: \ temp \ outfc.shp
Если вы работаете над программным обеспечением ESRI, по крайней мере, я могу говорить о ArcGIS 9.3, тогда шейп-файлы не поддерживают нули. Я столкнулся с этой проблемой несколько недель назад и провел целый день, расследуя. Я нашел эту ссылку особенно освещающей http://forums.esri.com/Thread.asp?c=93&f=993&t=125464, Кажется, единственный способ поддержать пустые значения в шейп-файлах ESRI - это использовать базы геоданных (тогда шейп-файлы становятся классами объектов. Я использовал файл базы геоданных). Для поддержки нулей я закончил создание базы геоданных и создание классов объектов (также называемых шейп-файлами) внутри файловой базы геоданных (это будет поддерживать нули), в отличие от создания шейп-файла и последующего импорта его в базу геоданных (это не будет поддерживать нули) , Если я правильно помню, вы также должны явно указать в свойствах поля, что вы хотите, чтобы значения null поддерживались. Вот ссылка, которая может помочь Как создать класс объектов в файловой базе геоданных в ArcGIS 9.3 с Python?