Polígono shapefile con valores nulos?

10

¿Alguien sabe dónde puedo encontrar un archivo de forma de muestra que tenga entradas nulas (preferiblemente un archivo de forma poligonal)?

No estoy seguro de cómo crear uno con entradas nulas.

Jeff Storey
fuente

Respuestas:

10

Tenga en cuenta que una gran cantidad de software que lee archivos SHP no admite valores nulos para la geometría. Incluso las versiones anteriores de ArcView tenían problemas.

He creado una muestra aquí: http://www.routeware.dk/temp/shp_null_sample.zip Tiene 3 registros, el segundo no tiene geometría.

Uffe Kousgaard
fuente
¿Qué versiones de ArcView? Recuerdo que AV 2.xy 3.x crearían geometrías nulas siempre que crearan un nuevo shapefile (objeto 'FTab' en Avenue), por lo que las geometrías nulas eran comunes y completamente compatibles.
whuber
Se admiten geoms nulos, son un valor válido (desconocido) para una geometría. El problema es que mucho software usa la geometría sin verificar primero si es nula, luego suceden cosas malas como bloqueos. Es por eso que hay una herramienta gp Data Management \ CheckGeometry, si el software tiene problemas con un fc, esto suele ser lo primero que debe verificar.
gotchula
1
Es simple agregar nuevos registros a un nuevo shapefile (ctrl-A en la GUI de Vista de AV 3.x lo hará). Tienen automáticamente formas nulas. Las formas nulas también se produjeron como resultado de operaciones no válidas, como las formas de proyección dura que están fuera del dominio de una proyección. AV 3.x generalmente no tuvo problemas con ellos. Creo que pueden haber surgido problemas en AV 8 y posteriores: en efecto, el software más nuevo de ESRI no se ajustaba a sus propias especificaciones.
whuber
1
@UffeKousgaard, he aplicado un tachado a la parte de esta publicación que se refería a un enlace que ahora está muerto. ¿Puede dar más detalles sobre esta respuesta para evitar la eliminación de la publicación, lo que puede provocar la pérdida de reputación?
Fezter
1
El archivo está de vuelta.
Uffe Kousgaard
10

Supongo que quiere decir nulo para la columna de geometría / forma, porque los archivos de forma no admiten nulo para ningún tipo de campo, excepto la geometría y (escucho) para los campos de fecha.

El siguiente código crea 1 archivo de forma con 1 registro / característica que tiene una geometría poli nula.


  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 ejecuto y obtengo esto, que es lo que esperaría

ADVERTENCIA 000442: geometría nula en 0 en c: \ temp \ outfc.shp

gotchula
fuente
1

Si está trabajando en el software ESRI, al menos puedo hablar por ArcGIS 9.3, entonces los shapefiles no admiten nulos. Me encontré con este problema hace unas semanas y pasé un día investigando. Encontré este enlace particularmente esclarecedor http://forums.esri.com/Thread.asp?c=93&f=993&t=125464. Parece que la única forma de admitir nulos dentro de los archivos de forma ESRI es usar geodatabases (luego los archivos de forma se convierten en clases de características. Usé el archivo de una geodatabase). Para admitir nulos, terminé haciendo una geodatabase y creando las clases de características (también conocidas como shapefiles) dentro de la geodatabase de archivos (esto admitirá nulos) en lugar de crear un shapefile y luego importarlo a la geodatabase (esto no admitirá nulos) . Si no recuerdo mal, también debe indicar explícitamente en las propiedades del campo que desea que se admitan los valores nulos. Aquí está el enlace que podría ayudar ¿Cómo crear una clase de entidad en una geodatabase de archivos en ArcGIS 9.3 con Python?

9 monos
fuente