null値を持つポリゴンシェープファイル?


10

nullエントリが含まれているサンプルシェープファイル(できればポリゴンシェープファイル)がどこにあるかを知っている人はいますか?

nullエントリを持つものを作成する方法がわかりません。

回答:


10

SHPファイルを読み取るソフトウェアの多くは、ジオメトリのnull値をサポートしていないことに注意してください。古いバージョンのArcViewでも問題がありました。

ここでサンプルを作成しました:http : //www.routeware.dk/temp/shp_null_sample.zip これには3つのレコードがあり、2番目にはジオメトリがありません。


ArcViewのどのバージョンですか?AV 2.xおよび3.xでは、新しいシェープファイル(Avenueの「FTab」オブジェクト)を作成するたびにnullジオメトリが作成されるため、nullジオメトリは一般的で完全にサポートされていました。
whuber

null geomがサポートされており、それらはジオメトリの有効な値(不明)です。問題は、多くのソフトウェアが最初にnullであるかどうかをチェックせずにジオメトリを使用することです。その後、クラッシュなどの問題が発生します。これがgpツールData Management \ CheckGeometryが存在する理由です。ソフトウェアがfcに問題がある場合、これは通常、最初に確認するものです。
ゴチュラ2011年

1
新しいレコードを新しいシェープファイルに追加するのは簡単です(AV 3.xのView GUIのctrl-Aで追加できます)。それらは自動的にヌル形状になります。プロジェクションのドメイン外にあるハードプロジェクション形状などの無効な操作の結果として、ヌル形状も生成されました。AV 3.xは通常、それらに問題はありませんでした。AV 8以降で問題が発生した可能性があります。事実、ESRIの新しいソフトウェアは、独自の仕様に準拠していませんでした。
whuber

1
@UffeKousgaard、私はこの投稿の、現在死んでいるリンクに関連する部分に取り消し線を適用しました。評判が失われる可能性がある投稿の削除を防ぐために、この回答について詳しく説明してください。
Fezter

1
ファイルが戻ってきました。
Uffe Kousgaard 2017年

10

形状/形状列のnullを意味していると思います。形状ファイルは、形状と(私が聞いているように)日付フィールド以外のフィールドタイプではnullをサポートしていないためです。

以下のコードは、nullポリゴンジオメトリを持つ1つのレコード/機能を持つ1つのシェープファイルを作成します。


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



私はそれを実行し、これを私が期待するものです

警告000442:c:\ temp \ outfc.shpの0にあるヌルジオメトリ


1

ESRIソフトウェアで作業している場合、少なくともArcGIS 9.3について話すことができます。シェープファイルはnullをサポートしていません。数週間前にこの問題に遭遇し、調査に1日費やしました。私はこのリンクが特に明るいhttp://forums.esri.com/Thread.asp?c=93&f=993&t=125464を発見しました 。ESRIシェープファイル内でnullをサポートする唯一の方法は、ジオデータベースを使用することです(シェープファイルはフィーチャクラスになります。ジオデータベースのファイルを使用しました)。nullをサポートするために、シェープファイルを作成してジオデータベースにインポートする(これはnullをサポートしない)のではなく、ジオデータベースを作成し、ファイルジオデータベース内にフィーチャクラス(別名シェープファイル)を作成する(これはnullをサポートします)。 。私が正しく覚えている場合は、nullをサポートすることをフィールドプロパティに明示的に指定する必要もあります。Pythonを使用してArcGIS 9.3のファイルジオデータベースにフィーチャクラスを作成する方法に役立つリンクは次のとおりです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.