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.
3 Answers 3
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.
-
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– whuber2011年01月18日 14:40:42 +00:00Commented Jan 18, 2011 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– gotchula2011年01月18日 17:42:16 +00:00Commented Jan 18, 2011 at 17:42
-
1It'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– whuber2011年01月19日 18:20:14 +00:00Commented Jan 19, 2011 at 18:20
-
1@UffeKousgaard, I have applied a strikethrough to the portion of this post which pertained to a link which is now dead. Can you please elaborate on this answer to prevent removal of the post, which may result in lost reputation.Fezter– Fezter2017年03月20日 22:29:16 +00:00Commented Mar 20, 2017 at 22:29
-
1The file is back.Uffe Kousgaard– Uffe Kousgaard2017年03月21日 05:58:48 +00:00Commented Mar 21, 2017 at 5:58
I assume you mean null for the geometry/shape column, because shapefiles don't support null for any field type except the geometry and (i hear) for date fields.
The code below creates 1 shapefile 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
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?