シェープファイルを置き換える試みはありますか?[閉まっている]


67

最近、私は多くの時間を費やして、DBFの10文字のフィールド名の制限を満たすために、「25歳以上の学士号以上の市民の割合」などの完全に良いフィールド名を「edbchogtr」のようなものに変換しました。

別のスレッド(Shapefile技術仕様の "Oddities")で、geospatialpythonは次のようにコメントしています。単純なベクトルストレージまたは独自仕様です。」

Lawhead氏のコメントと相まって、この活動は私が疑問に思っています。

  • シェープファイルをGISのユビキタスデータストレージおよび交換形式として置き換える明示的な試みはこれまでにありましたか?
  • 競争相手はいますか?
  • 競合する形式があった場合、なぜ失敗したのですか?
  • Esriはそれらをサポートすることを拒否しましたか、それとも単に物語は技術的な慣性の1つですか?
  • 試行されていない場合...なぜですか?

GIS開発者としてもユーザーとしても、私たち自身が少し改善できるように思えます。


2
@Mapperz最近リリースされたジオデータベースAPI以外に、無料のジオデータベースを作成するためのツールはありません。これは、世界のESRIの部分を除いて、代替としてカウントされるとは思わない。
canisrufus

2
あなたはGDAL使用(API経由で)ジオデータベースを読み書きすることができgdal.org/ogr/drv_filegdb.htmlを使用してresources.arcgis.com/content/geodatabases/10.0/file-gdb-apiを
Mapperz

1
ArcGISライセンスなしでファイルジオデータベース(少なくともSimple Features)の読み取り/書き込みを行うPython APIが必要です。これはOpenです。
PolyGeo

2
@PolyGeoあなたと他のみんな:)
ラギヤセルバーフム

3
@celenius From gdal.org/ogr/drv_shapefile.html 「ジオメトリ:Shapefile形式は明示的に32ビットオフセットを使用するため、8 GBを超えることはできません(実際には16ビットワードへの32ビットオフセットを使用します)。したがって、ファイルの使用は推奨されません4GBを超えるサイズ。属性:dbf形式にはオフセットがないため、任意に大きくすることができます。」したがって、かなり大きなdbfsを使用できますが、shpが4GBを超える場合は注意する必要があります。その後、火で遊んでいます。
ラギヤセルバーフム

回答:


50

これは常に取り上げられるトピックです。正しい答えが得られないかもしれませんが、個人的な意見を述べることができます。

それらがサポートされている理由は、それらに関するいくつかの特性に起因している可能性があるため、いくつか言及します。

  • まず、仕様があります。つまり、私は30代前半で、このことは10代の頃から存在していました。したがって、この仕様はしばらく前から存在していると言っても安全です。もちろん、公開されている他の形式もいくつかありますが、この形式の違いは...

  • 比較的簡単です!DBF Formatの構築されており、当時はすでに存在し、いくつかのプラットフォーム/ OSで広くサポートされていました。この形式の半分(DBF部分)を読み取ることができるパーサーが既にあったため、追加機能のサポートが容易になりました。ジオメトリがありますか?確かにそれをシリアライズして書いてください。できました。カバレッジと比較してください!トポロジクリーンが行うことを簡単な言葉で誰かに説明してみてください。トポロジ的にクリーンなカバレッジを記述することは簡単ではありません。

  • 最も重要なことは、シェイプファイルが今でも人気を博している一番の理由は、それらがオープンソースとプロプライエタリの両方のシステムで同様にサポートされているからだと思います。シェープファイルをサポートしていないGISを知っていますか?!?前代未聞。

代わりに、File GeoDatabasesSpatialiteの話を聞きます。両方の形式は、機能、柔軟性、速度などの点で、シェープファイルと比較して非常に優れています。独自の方法で、彼らは異なる分野でお互いをより良くする特定の事柄を持っていますが、spatialiteとFileGDBの比較は確かにこの質問の範囲外です。

この形式のいずれかがShapefilesを置き換えると思いますか?彼らの現在の化身ではありません

どうして?

技術的な議論のためではなく(結局のところ、その点で優れていたと言っていました)、他の何かのために:ライセンス。

それで彼らの問題は何ですか?

FileGDB

FileGDBは、新しいFileGDB APIを通じて相互運用性を提供します。それにもかかわらず、このAPIはバイナリ形式で提供されますESRIによる。これは仕様ではありません。過去にGeoDatabaseチームで働いたことがありますが、私はすべてのスズ箔ハットを身に着けた陰謀理論家とは対照的に、これはまったく悪意のあるものではないことを伝えることができます。これは、GeoDatabaseの内部がリリースごとに変わるためです。完全な仕様を公開するには、基本的にすべてを維持する方法の詳細をすべて提供し、毎年のリリースごとにフォーマットの変更を慎重に文書化します。意味がありません。そのため、FileGDB APIは仕様ではありませんが、これらの小さな変更をすべて抽象化します。そして今、それはクロスプラットフォームで使用することができます!気を付けてください、これは大きな前進です!ESRIの保守的な性質を考慮すると、これは間違いなく正しい方向への反応です。

それでも、バイナリのみのサポートは、オープンソースの世界の誰もがあまり幸せにならない。ESRIがサポートしていない場合、どのようにしてLinuxの他のフレーバーにコードを移植して活用するのでしょうか。できません。これがオープンソースを強力にするものであり、今ではこれを利用することはできません。ESRIがDebianのサポートを停止することに決めた場合、それだけです。できました。そして、それを変更するためにできることは何もありません。

Spatialite

Spatialiteは、SQLiteからすべての無料機能を取得できるため、素晴らしいです。SQLiteはどこでも使用されます。Android Phone、iPhone / iPad、Firefox、Google Chrome、いくつかの商用組み込みデバイスにあります-いつまでも継続できます。本当にジオフォーマットにするために(単なるバウンディングボックス操作を行うのではなく)、PostGISが使用するのと同じジオメトリライブラリGEOSを活用する必要があります。悲しいことに、GEOSはJTSとして知られるさらに素晴らしいジオメトリライブラリに基づいています。JTSのすべてのアルゴリズムは非常に強力であるため、問題は何ですか?

JTSはオープンソースLGPLとしてライセンスされており、LGPLはバイラルライセンスです。JTSはLGPLであり、GEOSはLGPLを意味し、GEOSと静的にリンクされた空間ライトはLGPLを意味します。これはひどい。どうして?オープンソースのライセンスについてあまり説明しなくても、たとえば、iPhoneアプリで空間ライトを使用できないのは、アプリ全体が自動的にオープンソースになるためです(iOSは静的リンクのみを許可します)。どのタイプのGPLライセンスも(合理的に)ESRIのがらくたを怖がらせるので、10フィートの棒でそれに触れることはありません。したがって、世界で最も人気のあるGISシステムであるArcGISは、Spatialiteをネイティブにサポートしていません(おそらくサポートしません)。これにより、実行可能な形式として自動的に削除されます。

したがって、どこでもサポートされている安っぽいシェープファイルに戻ります。

更新

どうやら私の答えは議論の余地があり、誰かが私の答えの全体の意味自由に編集して変更し、彼らの視点を置くことは問題ないと判断したほどです。しないでください。あなたが私に同意しない場合、それはまったく問題ありません。別の答えにあなたの意見を投稿して、コミュニティに決定させてください。元の意味を示すために、編集内容を回答にロールバックしました。sqliteが実行可能な形式であると主張する編集済みの回答を読んだ場合に備えて、この更新プログラムを追加しています。


SQLite / Spatialiteの問題は、フォーマットではなく、空間ライブラリを上に持つリレーショナルデータベースエンジンであるということです。これは非常にうまく機能しますが、データをリレーショナルな方法で保存することを強制します。これは常に最適な方法とは限りません。また、SQLiteファイル形式(sqlite.org/fileformat2.html)の複雑さにより、SQLiteエンジンなしでデータにアクセスすることは難しく、したがって、データ交換のためのオープンで簡単にアクセスできるファイル形式には適していません。それは本当にそのために設計されていませんでした。
イゴールブレジュ

8
実際、LGPLはバイラルライセンスではありません-これを回避するために特別に設計されました。さらに、SpatialiteはMPLトライライセンス(source)の下でライセンスされています。これは、Mozilla Public Licenseを最適なライセンスとして選択し、その(非常に弱いコピーレフト)条件の下で操作できることを意味します。...彼らはするかどうか(与えられたことがFileGDBとほぼ同じスペースで競合する)別の物語である-私の読書は、少なくとも理由がないESRIためのライセンスのSpatialiteをサポートしていないということです
om_henners

3
@Ragi、ライブラリを使用し移植します。もちろん、移植はLGPLである必要があります。これは本質的に二次的作業であるためです。しかし、動的にリンクする場合、それは二次的著作物とは見なされず、「ライブラリを使用する著作物」であり、ライセンスを保持できます(en.wikipedia.org/wiki/GNU_Lesser_General_Public_License)。したがって、追加の説明なしに「LGPLはバイラル」と言うのは正確ではありません。
イゴールブレジュ

2
しかし、Spatialiteはツリーライセンススキーマ(groups.google.com/forum/?fromgroups#!topic/spatialite-users/…)の下でライセンスされているため、これも重要なポイントです。したがって、適切なライセンスを選択することができます。あなた-MPLは静的リンクを許可します。
イゴールブレジュ

2
@ bugmenot123罰金、その後、必要に応じて修正しますが、OS辱的なOSについてFUDを広めたと非難しないでください。私は10年以上OSコードを書いてきましたが(実際に私のものを実際に使用したのは驚くことではありません)、それは怒りではありませんでした。それは本当だった-そしてそれはまだです。LGPLのiOSでの動的リンク(正確には、フレームワーク)はiOS 8で許可されていました。これは技術的な問題ではありませんでしたが、法的問題です。Appstoreでの配布にはコード署名が必要です-私のようなすべてのOS愛好家にとって悲しいことに、LGPLはこのための曖昧なライセンスです。裁判所では前例はありません。
ラギヤーサーバーフム

18

SHP + SHXパーツ自体はそれほど悪くありません。実際の問題はDBFの部分にあります。これは、ユニコードとあらゆる種類の最新のフィールドタイプをサポートする新しい形式で実現できます。問題は、世の中のすべてのソフトウェアでうまくサポートされていることです。


6
+1 DBFの部分で改善することもまったく難しくありません
whuber

1
試みはありましたか?
-canisrufus

5
DBFをUTF-8 CSVファイルに単純に置き換えるShapefileの修正を頻繁に行ってきました。サポートは簡単で、既存のソフトウェアパッケージへの最小限の変更が必要です。
scw

1
@canis Fox Softwareは80年代後半にマイナー(専有)の試みを行いました。MSがそれらを購入した後(c。1990)、それはそれでした。コミュニティはDBF 3標準を作成し、すべての開発が凍結されました。MSはAccessをリリースしました。FoxProは死にました。世界は前進しました。
whuberの

1
それどころか、@ Uffeでは、CSVファイルにランダムにアクセスできます。効率的な検索のためにDBFファイルが行うように、インデックスのみが必要です。私が見る最大の問題は、文字列の引用やCR / LF変換など、CSVファイルに自然に起こる一見小さな変更がすべてのバイトオフセットを台無しにすることです。DBFファイルの固定長レコード構造には、ストレージの効率は劣りますが、その問題はありません。
whuber


7

少なくともspatialiteには意図があります。たとえば、このプレゼンテーションhttp://www.sourcepole.ch/assets/2010/9/10/foss4g2010_spatialite.pdfを参照してください

一方、失敗した主な理由は、shpが多くのアプリケーションで十分にサポートされており、わずかな欠陥しかないと考えているからです。

他にもこの意見を共有しています:

これは、SpatiaLiteプロジェクトが実装するためのツールを私たちに与えていないからではなく、コミュニティがそれについてあまり気にしないかもしれないからです。SHPは彼らのために機能し、変更する理由はありません。

http://www.spatiallyadjusted.com/2010/09/16/spatialite-is-not-the-shapefile-of-the-future/

Esriファイルジオデータベース、spatialite、およびautodesk sdfの詳細については、http//www.spatialdbadvisor.com/blog/121/the-shapefile-manifestoをご覧ください。


spatiaLiteは素晴らしいと思いますが、機能、参照システムなどのオーバーヘッドが最大3メガバイトであるため、優れた総合的な交換形式になりません。
Scro

実際、spatialiteのライセンスは理想的ではありません。ツールとは関係ありません。
ラギヤセルバーフム

@ Scro、3メガバイトが大きすぎますか?確かにデスクトップには大きすぎません。モバイルデバイスを検討する必要があります。また、Spatialiteよりも小さいサイズで、同等の機能を持つ別のSpatial APIはありますか?
-klewis

@klewis-それ自体は大きすぎません。小さなデータセット(<200kbと考えてください)がたくさんあると考えると、非常に非効率的です。特に、一度受信すると、各データセットを3MBファイルのままにするか、既存のデータベースにロールインするという事実を考えると、これは多くのオーバーヘッドです。明確にするために、私は3未満のspatiaLiteですが、データ転送について話しているので、何らかのフラットファイル/ xml / wkbの方がはるかに効率的です。
-Scro

6

Esriは、シェープファイルの代わりとして、数年前からファイルジオデータベース推進しています

最近では、奇妙なものを隠すAPIを提供しています


私はジオデータベースをあまり使用していません。ウィキペディアは、それらが「閉じた」標準であると言います。例えば、ジオデータベースの仕様は公開されていません。フォーマットの内部を公開せずに非常に広く採用するのは難しいようです。私は歴史を知るには若すぎますが、仕様の公開部分のために、シェイプファイルが部分的にとても人気があると思います。APIは良いステップのように思えます。
canisrufus

1
@canisあなたは正しいです。当時、ESRIがそれらをオープンGISデータ交換フォーマットとして明確に宣伝していたことを除いて、誰もシェープファイルを採用していなかったでしょう。ESRIの明確な.shp / .shx仕様のリリース(およびこれに固執するコミットメント)で利用可能な限られたソフトウェアツールでさえ、コードを記述して読み取り、シェープファイルの書き込み:リバースエンジニアリングは不要です。
whuber

APIがブラックボックスバイナリblobである限り、FGDBはSHPと同じ採用を見ることはありません。Esriがすべての顧客にSHPからFGDBに切り替えるよう説得したとしても、APIは実際にはオープンソースと互換性がありません。
デリック

3

GMLなどのXML方言は、巨大なデータセットを操作するために最適化されたものではありませんが、ソフトウェア間またはプラットフォーム間の交換形式として使用できます。

ライセンスに問題はないと思います(Spatialiteのウイルス特性に関するRagi Yaser Burhumの投稿を参照してください)。必要に応じて既存のパーサーを適応させるのはかなり簡単です。


1
あなたが育てようとしている理由だけでは言及されていないと思いますが、それは大きなデータセット用に最適化されていないということです。XMLは肥大化しています。ここに記載されている形式はバイナリであり、GMLはポイントを文字列として保存します。サイズは、桁違いに大きくなる可能性があります。
-canisrufus

3
カニスラフスは正しい。GMLにはいくつかの問題があります。インフォセットはXPathを使用してナビゲートできますが、XMLに空間インデックスを実装しようとした人は、これがいかに非合理的であり、従来のリレーショナルデータベースへのマッピングがどれほど悪いかを知るでしょう。多くの詳細を説明しなくても、インデックス付けやクエリのような基本的なものが簡単にならない場合、フォーマットは肥大化し、基本的にデータセット全体をメモリ内に保持してそれを処理する必要がありますが、これは良い選択肢ではありません。
ラギヤセルバーフム

4
プレーンテキストとして保存すると、xmlが肥大化します。xmlリーダーのドロップイン置換として機能する、使用可能なバイナリxmlライブラリが無料(無料、修正および再配布の両方)であり、人々がxmlの可読性とバイナリのパフォーマンスとストレージ効率の両方を自由に利用できるようにします。 。私が考えることができる唯一の理由は、それが大々的に取り上げられることはないということです。johandvw上記を観察します。誰も気にしません。
マットウィルキー

1

これを別の観点から見てみると、「学士号以上の25歳以上の市民の割合」の使用が完全に適切なフィールド名であるかどうかはわかりません 。スペースとアポストロフィの混在は処理できますが、コードまたはクエリを記述している場合は、バグが発生する可能性が高くなります。

私の意見では、空間データ配信の将来はWebおよびWebサービスに焦点を当てる必要があり、WFS仕様(GMLを使用)はオープンで確立されています。 GeoJSONは小さく、JavaScriptでの作業が簡単になる場合があります。ただし、圧縮ではサイズは同等です。

また、ESRIのPersonal Geodatabasesに投票したいと思います。悪意のあるMicrosoft形式である場合がありますが、ODBC、SQLクエリ、ビューをサポートし、非開発者が簡単なデータ入力フォームを作成でき、少なくともある程度のデータ整合性チェック(データ型、長さ、一意の値)を含めることができます。


それが有効なポイントです。それらの利点は、英語の知識があれば、フィールドの意味を理解できることです。
-canisrufus

ただし、これがデータセットメタデータの役割です。シェープファイルは、これを保存するために同じ名前のXMLファイルを使用できます。
geographika
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.