地理的な場所でフィーチャテーブルを並べ替える


8

ここで興味深い課題があります。テーブルのレコードが地面上の地理的位置に従ってソートされるように、テーブルをマップレイアウトに埋め込む必要があります。たとえば、北から上へのマップでは、最北のフィーチャ(この場合はポイント)が最初のレコードで、最南のフィーチャが最後です。

マップの構成はArcGISですが、必要に応じて、テーブルの並べ替えにgdal / ogr、qgisなどを使用することもできます。

この質問を私の直接のユースケースを超えて拡大し、それによってコミュニティにとってより有用にするために、堅牢なソリューションは、西から東または内から外など、他の地理的な種類を選択できるようにします。

図


どの座標系を使用していますか?
Mapperz

@mapperz、地理的な10進度ですが、必要に応じて、UTMまたはアルバースにすることもできます。
マットウィルキー2013年

回答:


7

ベアリングと方向にソートする北東の程度、などの単位方向ベクトルを事前計算(SIN()、COS())。

フィールド計算で、フィーチャの(投影された)[X]および[Y]座標を取得し(それらの重心または非ポイントフィーチャには何でも使用)、それらがまだ利用できない場合は、それらに沿った距離に等しい新しいフィールドを計算します。方位、方向ベクトルと座標の内積で与えられる:

z = sin(a) * [X] + cos(a) * [Y]

[z]のテーブルを昇順で並べ替えます。

たとえば、南から南への並べ替えの場合、方位は180度、v =(sin(180)、cos(180))=(0、-1)であり、結果の並べ替えは-[Y]、レコードを意図したとおりに、最大の[Y](最初)から最小の[Y](最後)まで並べます。


「内から外へ」の並べ替えは多くのことを意味する可能性がありますが、1つの解釈は、並べ替えは中央の場所からの距離で行う必要があるというものです。同様のソリューションが適用され、ピタゴラスの定理を使用して、固定点からの(二乗)距離を計算します。(平方根の適用はソート順を変更しないため不要です。)


より奇抜なソート順については、「世界の1次元マップ」で説明および図示されています。


2

ツールの使用に関するwhuberの答えを表すために、Arcgisでポイントデータを使用する場合のNorth-South、East-Westのユースケースの簡単な実装を次に示します。

Esri Technical Article HowToの好意による:ソートは、エクスポート用に北/南または東/西の機能を備えています

シェープファイルのフィーチャーの順序を変更するにはどうすればよいですか?外部プログラムにエクスポートする必要なく(テーブル/フィーチャクラスを複製する必要はまだありますが)、ArcgisとQgisの両方のテーブルソート部分を実行するためのソリューションと、Pythonを使用して新しいランクフィールドを更新するために属性のシェープファイルレコードソートしますか?arcpyメソッドがあります。


3
ArcGIS 10.0以降では、並べ替えツールに空間並べ替えオプションが用意されています。
クレウィス2013年

1

以下のよう@klewisによってコメント

ArcGIS 10.0以降では、並べ替えツールに空間並べ替えオプションが提供されています

ソート・ツールのヘルプ高度なレベルのライセンスを必要とする、その記述spatial_sort_methodされました:

Specifies how features are spatially sorted. Sort method is only enabled when the Shape field is selected as one of the sort fields.
UR —Sorting starts at upper right corner. This is the default.
UL —Sorting starts at upper left corner.
LR —Sorting starts at lower right corner.
LL —Sorting starts at lower left corner.
PEANO —Sorting uses a space filling curve algorithm, also known as a Peano curve.
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.