답변:
SHP 파일을 읽는 많은 소프트웨어는 형상에 대해 null 값을 지원하지 않습니다. 구 버전의 ArcView에서도 문제가있었습니다.
여기에 샘플을 만들었습니다. http://www.routeware.dk/temp/shp_null_sample.zip 3 개의 레코드가 있고 2 번째에는 지오메트리가 없습니다.
shapefile은 기하학을 제외한 모든 필드 유형에 대해 null을 지원하지 않으므로 날짜 필드에 대해 null을 지원하지 않기 때문에 geometry / shape 열에 null을 의미한다고 가정합니다.
아래 코드는 널 폴리 지오메트리를 가진 1 개의 레코드 / 기능으로 1 개의 shapefile을 만듭니다.
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 : c : \ temp \ outfc.shp에서 0의 null 형상
ESRI 소프트웨어를 사용하는 경우 최소한 ArcGIS 9.3에 대해 말할 수 있으며 shapefile은 null을 지원하지 않습니다. 몇 주 전에이 문제에 부딪 히고 하루를 조사하는 데 보냈습니다. 이 링크가 특히 http://forums.esri.com/Thread.asp?c=93&f=993&t=125464. ESRI shapefile 내에서 null을 지원하는 유일한 방법은 지오 데이터베이스를 사용하는 것입니다 (그런 다음 shapefile이 피쳐 클래스가됩니다. null을 지원하기 위해 지오 데이터베이스를 작성하고 shapefile을 만든 다음 지오 데이터베이스로 가져 오는 것과 반대로 파일 지오 데이터베이스 (이는 null을 지원함) 내에 피쳐 클래스 (모양 파일이라고도 함)를 만들었습니다 (널을 지원하지 않음). . 올바르게 기억하면 필드 속성에 null을 지원하도록 명시 적으로 명시해야합니다. 다음은 Python을 사용하여 ArcGIS 9.3의 파일 지오 데이터베이스에서 피처 클래스를 생성하는 방법에 도움이되는 링크입니다 .