西に面するすべてのビーチのOSMを照会しますか?-QGISが望ましい


17

この惑星(またはその特定のサブセット)で西向き(+/- 20-30度)にあるすべてのビーチを特定したい。

私の考えは、OSMをデータソースとして使用することです。タグ「natural = beach」を持つすべてのポリゴンを抽出すると、ビーチとしてフラグが付けられているすべてのエリアのデータセット/シェープファイルが得られます。ここまでは順調ですね。

また、海岸線のデータ(OSMやNatural Earthなど)を使用して、ビーチの向きを特定できることも知っています。

小さな不一致を修正するためにビーチの形状をバッファリングし、これらを海岸線と交差させると、形状のどちら側が水に面しているかに関するデータが得られます。交差するすべてのポイントの最大値/最小値を使用すると、方位がわかります。(90度+/- 20-30度なら問題ありません...)

そして、それは私が失われた場所です...

私の好みのツールはQGISですが、PostGISも同様です。

このパズルを解く方法を知っている人はいますか?


4
バッファを使用する代わりに..シェープファイル内のすべてのアイテムを東に少しずらし、海岸線シェープファイルとビーチシェープファイルの間でインターセクトを実行する方法を理解する方が簡単ではありませんか?それらは、ビーチが西に面している場所でのみ重なります。
ティムクウェリエ14

ティム-いいアイデア。「奇妙な」形状に対して本当に機能するかどうかはわかりません。私は別のアイデアを受け取りました:海岸線を線として取り、草のv.netを使用してビーチポリゴンの重心は重心を最も近い線(またはpostgis)にスナップします。これで、方向を表す線ができました。トリガを使用して、重心の始点から終点までの方位を計算します。良いことですが、QGIS内に完全にはありません。もっと賢いアイデアはありますか?
jdoe 14

海岸線を一連のポイントデータとビーチの重心に変える方法を見つけることができる場合は、ここで説明するように最近傍分析を試すことができます:リンク例に示されているように属性を結合する代わりに、x、一致する2つのデータセットのy値。フィールド計算機を使用すると、重心と最も近い点のx値とy値の相対的な差を見つけることができます。x差の符号に基づいて、それが西か東か、diff(y)/ diff(x)の比に基づいて西側になります。
ティムクウェリエ

文字が足りなくなった場合、セントロイドのx値>海岸線のポイントx値の場合、ビーチは西に面しています。2つのx座標とy座標により、y軸に向かう角度を計算できます。(y2-y1)/(x2-x1)は線の傾きを示し、度に変換できます
Tim Couwelier

5
データをラスタライズし、オープンウォーター値をゼロに設定し、ビーチを1に設定してから、テレイン分析->ア​​スペクトツールを実行できます。下り勾配の方向のラスタを取得し、十分に「西側」のセルを選択できます。
WxMacMan 14年

回答:


1

ArcGIS Onlineの標高サービスには、すぐに使用できる世界中のデータと、アスペクトを生成するための組み込みのラスター関数が含まれています。また、アスペクト値(290〜250度)の範囲と高度(たとえば、ビーチの定義方法に応じて0〜10メートル-または、すでにビーチの輪郭が描かれていますか?)を同時にフィルター処理するのも非常に簡単です。ArcGISテクノロジーの使用を受け入れているかどうかはわかりません。はいの場合、サンプルRESTリクエストを送信できます。

添付されたpngは、高度に対して適切にフィルター処理されませんが、概念を示しています...ここに画像の説明を入力してください

コーディ・B

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