Shapefile poligonale con valori null?


10

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:


10

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.


Quali versioni di ArcView? Ricordo che AV 2.xe 3.x creavano geometrie null ogni volta che creavano un nuovo shapefile (oggetto 'FTab' in Avenue), quindi le geometrie null erano comuni e completamente supportate.
whuber

i geom null sono supportati, sono un valore valido (sconosciuto) per una geometria. Il problema è che molti software usano la geometria senza prima verificare se è nulla, quindi succedono cose brutte come crash. Ecco perché esiste uno strumento gp Data Management \ CheckGeometry, se il software ha problemi con un fc, questa è in genere la prima cosa da controllare.
gotchula,

1
È semplice aggiungere nuovi record a un nuovo shapefile (lo farà Ctrl-A nella GUI di View di AV 3.x). Hanno automaticamente forme nulle. Le forme nulle sono state inoltre prodotte a seguito di operazioni non valide, come le forme a proiezione forte che sono al di fuori del dominio di una proiezione. AV 3.x generalmente non ha avuto problemi con loro. Penso che potrebbero essersi verificati problemi in AV 8 e versioni successive: in effetti, il software più recente di ESRI non era conforme alle proprie specifiche.
whuber

1
@UffeKousgaard, ho applicato un barrato alla parte di questo post che riguardava un link che ora è morto. Potete per favore approfondire questa risposta per impedire la rimozione del post, che può causare la perdita della reputazione.
Fezter

1
Il file è tornato.
Uffe Kousgaard,

10

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


1

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?

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.