Qualcuno sa dove posso trovare un file di forma campione che contiene voci nulle (preferibilmente un file di forma poligonale)?
Non sono sicuro di come crearne uno con voci null.
Qualcuno sa dove posso trovare un file di forma campione che contiene voci nulle (preferibilmente un file di forma poligonale)?
Non sono sicuro di come crearne uno con voci null.
Risposte:
Si noti che molti software che leggono file SHP non supportano valori null per la geometria. Anche le versioni precedenti di ArcView presentavano problemi.
Ho creato un esempio qui: http://www.routeware.dk/temp/shp_null_sample.zip Ha 3 record, il 2 ° non ha geometria.
Suppongo che tu intenda null per la colonna geometria / forma, perché gli shapefile non supportano null per nessun tipo di campo tranne la geometria e (ho sentito) per i campi data.
Il codice seguente crea 1 shapefile con 1 record / feature che ha una poli geometria nulla.
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()
Lo eseguo e ottengo questo che è quello che mi aspetterei
ATTENZIONE 000442: geometria nulla su 0 in c: \ temp \ outfc.shp
Se stai lavorando sul software ESRI, almeno posso parlare per ArcGIS 9.3, quindi gli shapefile non supportano i null. Ho riscontrato questo problema alcune settimane fa e ho trascorso una giornata a indagare. Ho trovato questo link particolarmente illuminante http://forums.esri.com/Thread.asp?c=93&f=993&t=125464. Sembra che l'unico modo per supportare i null all'interno degli shapefile ESRI sia utilizzare i geodatabase (quindi gli shapefile diventano featureclass. Ho usato file un geodatabase). Per supportare i null, ho finito per creare un geodatabase e creare le featureclass (altrimenti note come shapefile) all'interno del file geodatabase (questo supporterà i null) invece di creare un shapefile e quindi importarlo nel geodatabase (questo non supporterà null) . Se ricordo bene, devi anche dichiarare esplicitamente nelle proprietà del campo che vuoi che i null siano supportati. Ecco il link che potrebbe aiutare Come creare una feature class in un file geodatabase in ArcGIS 9.3 con Python?