Take the 2-minute tour ×
Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. It's 100% free, no registration required.

Does anyone know where I can find a sample shapefile that has null entries in it (preferably a polygon shapefile)? I'm not sure how to create one with null entries.

Thanks, Jeff

share|improve this question
add comment

3 Answers 3

up vote 9 down vote accepted

Be warned that a lot of software reading SHP files do not support null-values for the geometry. Even older versions of ArcView had problems.

I have created a sample here: http://www.routeware.dk/temp/shp_null_sample.zip It has 3 records, the 2nd has no geometry.

share|improve this answer
    
Which versions of ArcView? I recall that AV 2.x and 3.x would create null geometries whenever they created a new shapefile ('FTab' object in Avenue), so null geometries were common and completely supported. –  whuber Jan 18 '11 at 14:40
    
null geoms are supported, they're a valid value (unknown) for a geometry. Trouble is lots of software use the geometry without first checking if it's null, then bad things happen such as crashes . That's why there is a gp tool Data Management\CheckGeometry, if the software has trouble with a fc, this is typically the first thing to check. –  gotchula Jan 18 '11 at 17:42
    
Thanks, this is much appreciated. –  Jeff Storey Jan 19 '11 at 0:56
    
I don't quite remember. AV3 or AV8 perhaps? A new SHP file has no records at all, that isn't the same as a null geometry. –  Uffe Kousgaard Jan 19 '11 at 8:54
1  
It's a simple matter to add new records to a new shapefile (ctrl-A in the View GUI of AV 3.x will do it). They automatically have null shapes. Null shapes were also produced as the result of invalid operations, such as hard-projecting shapes that are outside the domain of a projection. AV 3.x generally had no problems with them. I think problems may have arisen in AV 8 and later: in effect, ESRI's newer software did not conform to their own specs. –  whuber Jan 19 '11 at 18:20
add comment

You mean null for the geometry/shape column correct? Because shpfiles don't support null for any field type except the geometry and (i hear) for date fields.

Anyways, code below create 1 shpfile with 1 record/feature that has a null poly geometry.


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



I run it and get this which is what i'd expect

WARNING 000442: null geometry at 0 in c:\temp\outfc.shp

share|improve this answer
    
Thanks for this sample. –  Jeff Storey Jan 19 '11 at 0:57
add comment

If you are working on ESRI software, at least I can speak for ArcGIS 9.3, then shapefiles do not support nulls. I ran into this problem a few weeks ago and spent a day investigating. I found this link particularly illuminating http://forums.esri.com/Thread.asp?c=93&f=993&t=125464. It seems the only way to support nulls within ESRI shapefiles is to use geodatabases (then the shapefiles become featureclasses. I used file a geodatabase). To support nulls, I ended up making a geodatabase and creating the featureclasses (otherwise known as shapefiles) inside the file geodatabase (this will support nulls) as opposed to creating a shapefile and then importing it into the geodatabase (this will not support nulls). If I remember correctly, you also have to explicitly state in the field properties that you want nulls to be supported. Here is the link that might help How to create a feature class in a file geodatabase in ArcGIS 9.3 with Python?

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.