Shapefile de polígono com valores nulos?

10

Alguém sabe onde eu posso encontrar um shapefile de amostra com entradas nulas (de preferência um shapefile de polígono)?

Não sei como criar um com entradas nulas.

Jeff Storey
fonte

Respostas:

10

Esteja avisado de que muitos softwares que lêem arquivos SHP não suportam valores nulos para a geometria. Mesmo versões mais antigas do ArcView tinham problemas.

Eu criei uma amostra aqui: http://www.routeware.dk/temp/shp_null_sample.zip Possui 3 registros, o segundo não possui geometria.

Uffe Kousgaard
fonte
Quais versões do ArcView? Lembro-me de que o AV 2.xe 3.x criariam geometrias nulas sempre que criassem um novo shapefile (objeto 'FTab' na Avenue); portanto, geometrias nulas eram comuns e totalmente suportadas.
whuber
geoms nulos são suportados, eles são um valor válido (desconhecido) para uma geometria. O problema é que muitos softwares usam a geometria sem verificar primeiro se é nulo; então, coisas ruins acontecem, como falhas. É por isso que existe uma ferramenta gp Data Management \ CheckGeometry, se o software tiver problemas com um fc, normalmente é a primeira coisa a verificar.
gotchula
1
É simples adicionar novos registros a um novo shapefile (ctrl-A na GUI do View do AV 3.x fará isso). Eles têm automaticamente formas nulas. Formas nulas também foram produzidas como resultado de operações inválidas, como formas de projeção rígida que estão fora do domínio de uma projeção. O AV 3.x geralmente não teve problemas com eles. Acho que podem ter surgido problemas no AV 8 e posterior: com efeito, o software mais recente da ESRI não estava em conformidade com suas próprias especificações.
whuber
1
@UffeKousgaard, apliquei um tachado na parte deste post que pertencia a um link que está morto agora. Você pode elaborar esta resposta para impedir a remoção da postagem, o que pode resultar em perda de reputação.
Fezter
1
O arquivo está de volta.
Uffe Kousgaard 21/03/19
10

Suponho que você queira dizer nulo para a coluna geometria / forma, porque os shapefiles não suportam nulo para nenhum tipo de campo, exceto a geometria e (ouço) para os campos de data.

O código abaixo cria 1 shapefile com 1 registro / recurso que possui uma poli geometria 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()



Eu corro e recebo isso que é o que eu esperaria

AVISO 000442: geometria nula em 0 em c: \ temp \ outfc.shp

Gotchula
fonte
1

Se você estiver trabalhando no software ESRI, pelo menos eu posso falar pelo ArcGIS 9.3, os shapefiles não suportam nulos. Encontrei esse problema há algumas semanas e passei um dia investigando. Achei este link particularmente esclarecedor http://forums.esri.com/Thread.asp?c=93&f=993&t=125464. Parece que a única maneira de dar suporte a nulos nos shapefiles da ESRI é usar geodatabases (então os shapefiles se tornam classes de características. Eu usei arquivar um geodatabase). Para dar suporte a nulos, acabei criando um banco de dados geográfico e criando as classes de características (também conhecidas como shapefiles) dentro do geodatabase do arquivo (isso dará suporte a nulos), em vez de criar um arquivo shapefile e depois importando-o para o geodatabase (isso não suporta nulos) . Se bem me lembro, você também deve declarar explicitamente nas propriedades do campo que deseja que os nulos sejam suportados. Aqui está o link que pode ajudar. Como criar uma classe de recurso em um geodatabase no ArcGIS 9.3 com Python?

9monkeys
fonte