Polygon-Shapefile mit Nullwerten?


10

Weiß jemand, wo ich ein Beispiel-Shapefile mit Null-Einträgen finden kann (vorzugsweise ein Polygon-Shapefile)?

Ich bin nicht sicher, wie ich eine mit Null-Einträgen erstellen soll.

Antworten:


10

Seien Sie gewarnt, dass viele Softwareprogramme, die SHP-Dateien lesen, keine Nullwerte für die Geometrie unterstützen. Auch ältere Versionen von ArcView hatten Probleme.

Ich habe hier ein Beispiel erstellt: http://www.routeware.dk/temp/shp_null_sample.zip Es hat 3 Datensätze, der zweite hat keine Geometrie.


Welche Versionen von ArcView? Ich erinnere mich, dass AV 2.x und 3.x bei jeder Erstellung eines neuen Shapefiles ('FTab'-Objekt in Avenue) Nullgeometrien erstellen würden, sodass Nullgeometrien üblich waren und vollständig unterstützt wurden.
whuber

Null-Geoms werden unterstützt, sie sind ein gültiger Wert (unbekannt) für eine Geometrie. Das Problem ist, dass viele Softwareprogramme die Geometrie verwenden, ohne vorher zu überprüfen, ob sie null ist. Dann passieren schlimme Dinge wie Abstürze. Aus diesem Grund gibt es ein GP-Tool Data Management \ CheckGeometry. Wenn die Software Probleme mit einem FC hat, ist dies normalerweise das erste, was überprüft werden muss.
Gotchula

1
Es ist ganz einfach, einem neuen Shapefile neue Datensätze hinzuzufügen (Strg-A in der Ansichts-GUI von AV 3.x erledigt dies). Sie haben automatisch Nullformen. Nullformen wurden auch als Ergebnis ungültiger Operationen erzeugt, z. B. hart projizierende Formen, die außerhalb des Bereichs einer Projektion liegen. AV 3.x hatte im Allgemeinen keine Probleme mit ihnen. Ich denke, dass in AV 8 und höher möglicherweise Probleme aufgetreten sind: Tatsächlich entsprach die neuere Software von ESRI nicht den eigenen Spezifikationen.
whuber

1
@UffeKousgaard, ich habe den Teil dieses Beitrags, der sich auf einen Link bezieht, der jetzt tot ist, durchgestrichen. Können Sie diese Antwort bitte näher erläutern, um das Entfernen des Beitrags zu verhindern, was zu einem Reputationsverlust führen kann?
Fezter

1
Die Datei ist zurück.
Uffe Kousgaard

10

Ich gehe davon aus, dass Sie für die Spalte Geometrie / Form Null bedeuten, da Shapefiles für keinen Feldtyp außer der Geometrie Null und (wie ich höre) für Datumsfelder Null unterstützen.

Der folgende Code erstellt 1 Shapefile mit 1 Datensatz / Feature mit einer Null-Poly-Geometrie.


  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()



Ich führe es aus und bekomme das, was ich erwarten würde

WARNUNG 000442: Nullgeometrie bei 0 in c: \ temp \ outfc.shp


1

Wenn Sie an ESRI-Software arbeiten, kann ich zumindest für ArcGIS 9.3 sprechen, dann unterstützen Shapefiles keine Nullen. Ich bin vor ein paar Wochen auf dieses Problem gestoßen und habe einen Tag lang nachgeforscht. Ich fand diesen Link besonders aufschlussreich http://forums.esri.com/Thread.asp?c=93&f=993&t=125464. Die einzige Möglichkeit, Nullen in ESRI-Shapefiles zu unterstützen, besteht darin, Geodatabases zu verwenden (dann werden die Shapefiles zu Feature-Classes. Ich habe eine Geodatabase-Datei verwendet). Um Nullen zu unterstützen, habe ich schließlich eine Geodatabase erstellt und die Feature-Classes (auch als Shapefiles bezeichnet) in der Datei-Geodatabase erstellt (dies unterstützt Nullen), anstatt ein Shapefile zu erstellen und es dann in die Geodatabase zu importieren (dies unterstützt keine Nullen). . Wenn ich mich richtig erinnere, müssen Sie in den Feldeigenschaften auch explizit angeben, dass Nullen unterstützt werden sollen. Hier ist der Link, der möglicherweise hilfreich ist. So erstellen Sie eine Feature-Class in einer Datei-Geodatabase in ArcGIS 9.3 mit Python.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.