タグ付けされた質問 「algorithm」

一連のステップで問題を解決するために使用される数学的手順。アルゴリズムは通常、一連のコンピューターコマンドとしてエンコードされます。

4
最小間隔で制約エリア内に最大数のポイントを配置するアルゴリズムを探していますか?
制約を記述するポリゴンレイヤーがあります。このエリア内にポイントを追加したいと思います。できるだけ多くのポイントを追加したいのですが、それらの間に最小の間隔が必要です。GISでこれを行うことは可能ですか? 明確にするために、順序付けされたグリッドを生成できれば、それが最も多くのポイントを保証するため、最善です。ただし、制約によってこれが許可されることはめったにないため、オフセットを制約内により良く適合させるためにポイントを削除することが望ましい場合があります。
17 algorithm  point 

3
無向線のクラスタリング
私は、方向に関係なく線をクラスター化する効率的な方法を探しています。つまり、ニューヨークとロサンゼルスを結ぶ線は、ロサンゼルスとニューヨークを結ぶ他の方向の線と同じクラスター内にある必要があります。開始点/終了点の位置は類似している必要があります(つまり、サンディエゴからロングアイランドまではLA-NYと同じクラスター内にあるはずですが、サンフランシスコからボストンまではおそらくそうではありません)。中間点はありません。入力データは次の例のようになります。 (日本語版ウィキペディアGFDLまたはCC-BY-SA-3.0の Cassiopeia sweetによる、Wikimedia Commons経由) 以前に行を事前に並べ替えてみました。たとえば、すべてを西から東に走らせるようにしましたが、これは北から南に走る線やその他の方向の線の問題を解決しません。 この問題に対処するアルゴリズムを知っていますか?私は探していましたが、無向セグメントの平均方向を計算するアルゴリズムに加えて、リモートで役立つものは見つかりませんでしたので、間違った検索用語を使用する必要があります。

5
ポリゴンをラインストリングに単純化しますか?
川を表すいくつかのポリゴンを線ストリングに単純化したいと思います。ポリゴンの穴は省略できると思います。単純にそれを行う方法はありますか? postgisで直接、または別のオープンソースツールで直接実行できる場合は便利ですが、簡単なアルゴリズムの説明で十分です。

4
DEMから堤防の抽出を実行していますか?
私は1x1メートルのDEMと.lasの元のLiDAR点群を持っています。ベクトルフィーチャ(ポイント、ポリライン)に川の堤防(堤防の最高点)を抽出する必要があります。 アルゴリズムまたは既存のツールのアイデアはありますか? 最初の画像では堤防が明るい灰色で表示され、その下にある堤防のある領域の点群画像が下にあります。青の川の中心線。 DEMから線形フィーチャを抽出するためのツールはありますか? ENVIの空間特徴抽出モジュール(7ページ)のようなものが必要だと思いますが、ENVIの部分はありません。

5
軌跡のクラスタリング((x、y)ポイントのGPSデータ)およびデータのマイニング
GPSデータセットの分析に関して2つの質問があります。 1)軌跡の抽出フォームの記録されたGPS座標の巨大なデータベースがあります(latitude, longitude, date-time)。連続するレコードの日時の値によると、私はその人がたどるすべての軌跡/パスを抽出しようとしています。例えば; 時間から言うとM、(x,y)ペアは時間まで連続的に変化していNます。後N、(x,y)ペアの変化は減少し、その時点で、時間MからN軌道と呼ぶことができます。それは軌道を抽出するときに従うべき適切なアプローチですか?提案できるよく知られたアプローチ/方法/アルゴリズムはありますか?これらのポイントを効率的な方法で維持することを提案したいデータ構造または形式はありますか?おそらく、各軌跡について、速度と加速度を把握することが有用でしょうか? 2)軌跡のマイニングすべての軌跡をたどる/パスを取得したら、それらを比較/クラスタリングするにはどうすればよいですか?開始点または終了点が類似しているかどうかを知りたいのですが、中間パスはどのように比較されますか? 2つのパス/ルートを比較して、それらが類似しているかどうかを判断するにはどうすればよいですか。さらに; 同様のパスを一緒にクラスター化するにはどうすればよいですか? この件に関する研究などを指摘していただければ幸いです。 開発はPythonで行われますが、あらゆる種類のライブラリの提案を歓迎します。 StackOverflowでまったく同じ質問/programming/4910510/comparing-clustering-trajectories-gps-data-of-xy-points-and-mining-the-dataを開いています。ここでもっと答えが得られると思いました...

1
分岐した多角形の形状を検出しますか?
何百万ものポリゴンが連続したカバレッジを持つベクターレイヤーがあります。形状に応じて分類する必要があります。私はすでにコンパクト(のような景観生態学からいくつかの形状インデックスを使用しています4piA / P ^ 2)、平均幅(2A / P)、形状番号(P / SQRT(A) )、私も見ました、この答えをするの丸み/コンパクトさを計算しますポリゴン? 私の問題は、これらすべてのメトリックが面積と境界のある比率のみを使用していることです。フラクタル次元インデックスでさえ、面積と周囲長(2ln(0.25P)/ ln(A))のみを使用しています。しかし、面積と周囲長が同じで形状がまったく異なる2つのポリゴンをどのように区別できますか?この分岐ポリゴンAのように: 曲線ストリップBと同じ面積と周囲で描画しようとしました。既知のインデックスはすべて同じです。しかし、私にとっては、単純なストリップ(新月のような曲線を含む)と複雑な分岐形状を区別することが非常に重要です。 多角形Bを意図的に直線ストリップではなく曲線ストリップとして表示します。これは、直線の細長い形状を検出する関連円インデックスを知っているためですが、私の多角形も同じ外接円を持っている可能性があります。凸包を構築し、面積Apolygon / Aconvexの比率を計算しても、ここでは非常に似ているかもしれません。 それでは、ベクターデータで分岐ポリゴンAとポリゴンBを自動的に明確に区別するにはどうすればよいですか?(ラスターに変換するには、非常に小さいセルサイズ、膨大なデータセット、メモリ不足が必要になるため、不可能です)。他のパラメーターを含む他の形状インデックスはありますか?理想的には、この方法は明確に分岐したポリゴンだけでなく、CとDを区別するでしょう: 私の唯一のアイデアは、凸包を構築し、その凸包からポリゴンを消去し、残された(大きな)ピースの数をカウントすることです(レイヤー全体ではなくポリゴンごとにポリゴンを消去します)。これは、ボーダーの複雑さを示している可能性があります。 後でPythonで実装する数学的な解決策/アルゴリズムを歓迎します。

2
ネットワーク内で最長の最短パスを見つけるための最適なアルゴリズムはありますか?
線形ネットワークの大規模なセットがあり、ネットワークに沿って互いに最も離れている各ネットワークの両端を見つけたいと思います(下の画像では、DからKです)。この問題に対するブルートフォースソリューションは、発信元の各ペアのネットワークに沿った最短パスを計算することですが、数千のエンドを持つ数百のネットワークがあるため、可能な各パスの計算は非常に重いです。 総当たりを使用せずにこれを計算する最適な方法はありますか?いくつかの巧妙なルールに基づいていくつかのポイントを除外できますか? 編集:私の質問を明確にするために、@ Alex Tereshenkovが言及した最長パスの図を追加しました。黒いパスは、最長パスアルゴリズム(頂点を繰り返さない最長パス)の結果です。私の場合、あなたはいずれかの文字からネットワークに入り、できるだけ早く別の文字に運転する必要があると想像してください。参加するのに最も難しいのはどの2文字ですか?

1
異なる長さのセグメントの一致
私は、小さなセグメントと、それらが最も関連している可能性が高い大きなセグメントとを一致させようと試みています。 これが私が持っているデータの典型的な例です: ここでは、セグメント652を198969に一致させる必要がありますが、711および707は何にも一致しません。 さまざまな方法、特にハウスドルフ距離(ここの回答に基づいて)を探しました。PostGISを使用して計算しましたが、奇妙な結果が得られます:最短距離は707と198985の間であり、652はたとえば198985よりも198969までの距離が大きいです(必要に応じてクエリと結果を追加できます)。 Hausdorffは実際にこれを解決する正しい方法ですか?他のアプローチはありますか?言及したパラメーター(距離、方位など)の一連のチェックを作成することを考えましたが、エッジケースまたはそれらがどれだけしきい値に達しているかなどを処理するために条件の束をすべて追加する必要があります向かい合っています。 更新:許容できる妥協案と思われる方法を見つけました: 最初に<->、10メートル以内にある(PostGIS オペレーターを使用して)一致させようとしている青いセグメントから最も近い10個の黒いセグメントを見つけます。 次に、それぞれの黒いセグメントの青いセグメントの端に最も近い点を見つけて(を使用してST_ClosestPoint)新しいセグメントを作成し、長さが青いセグメントの90%未満の結果を除外します(セグメントはそうではありません)直面している、またはベアリングの差が〜20°以上であること) 次に、距離とハウスドルフ距離がある場合、ソートされた最初の結果を取得します。 微調整を行う必要があるかもしれませんが、今のところ許容できる仕事をしているようです。いくつかのエッジケースを見逃した場合に実行する他の方法や追加のチェックを探しています。

3
多角形の丸さ/コンパクトさを計算しますか?
さまざまなポリゴンの形状を定量的に記述する方法を見つけようとしています。私のプロジェクトでは、これらのポリゴンは湖、川、ラグーン、公園を表しています。そのため、ほぼすべての形状にできます。簡単なメトリックの1つは、境界線と面積の計算です。これは、せいぜいわずかに役立つメトリックです。しかし、多角形の「丸み」について何か言いたいこともあります。または、地図上での形状の「コンパクトさ」。 これを簡単に行えると思う唯一の方法は、そのポリゴンのバウンディングボックスに関連して各ポリゴンの面積を計算することです(既に持っています)。しかし、これは貧弱な解決策のようです。 だから今、私はこのようなものを考えています-ポリゴンの重心を取り、増加する領域の一連のバッファを追加して(たとえば、50%、100%、150%)、各バッファと元のポリゴン。完全な円は100%で完全にオーバーラップします。また、50%と150%のバッファーを使用して、各ポリゴンがどの程度、どのように異なるかを判断できます。 しかし、それでも面倒だと感じており、おそらく他の誰かがすでにはるかに優れたものを見つけたための貧弱な回避策のようです。 参考までに、最低限、さまざまなポリゴンの形状の結果のインデックスを確認し、そのソースについて知識に基づいた推測を行うことができる必要があります(川?樹状の貯水池?湖/ラグーン?公園? ?)

8
歩行者固有のルーティングエンジンを探しています
私が見る歩行者のルーティングを提供するアプリケーションのほとんどは、多くのニーズには十分ですが、最適ではありません。街の広場のようなオープンスペースを横断することはできません、ルーティングは通りの真ん中にあります。 歩行者専用のルーティングを備えたWebサイトまたはアプリケーションの例はありますか?


10
不規則な多角形の重心(ラベルポイント)を見つけるためのアルゴリズム
Googleマップで不規則な形状のポリゴンの重心(またはラベルポイント)を見つける必要があります。パーセル用にInfoWindowsを表示していますが、表面にあることが保証されているInfoWindowを固定する場所が必要です。以下の画像をご覧ください。 実際には、Google Maps固有のものは必要ありません。このポイントを自動的に見つける方法のアイデアを探しているだけです。 私の最初のアイデアは、平均の緯度と経度を取り、そこからランダムに配置して、ポリゴンと交差する点を見つけることにより、「偽」の重心を見つけることでした。ポイントインポリゴンコードはすでに持っています。これは私にはひどく「ハッキング」のようです。 ジオメトリを出力するサーバー側コードにはアクセスできないため、ST_PointOnSurface(the_geom)のようなことはできません。

1
インテリジェントな巡回セールスマンはいますか?
冗談はさておき、私はほとんど巡回セールスマンの問題(TSP)であるルーティングの問題がありました。 開始点が定義されています 終点は始点と一致します 各ノードを訪問する必要があります 総コストを最小限に抑える必要があります 2年前、TSPは完全に一致すると考えていたため、いくつかのサンプルデータをtsp_solveConcordeで実行しました。幸いなことに、TSPの最短パスが実際の最短パスではないことがすぐに明らかになりました。これは、ノードを一度だけ正確にアクセスすることを非現実的に要求することで問題が簡単になるためです。この図は、計算されたソリューションの最適化を1ステップで手動で試みたものであり、すでに使用されている最も長いエッジの距離を節約しています。 マッピング/監視サイトのサブセットへの最適なルートを見つけようとしているため、問題が表面化しました。ロケーションおよび道路ネットワークのデータは非常に正確かつ正確であるため、このような演習は理にかなっています。 TSPの一般化を見てきましたが、適切なアルゴリズムが見つかりませんでした。最小スパニングツリーは、ブランチからの戻りを考慮していません(ここでの最初の解決策にはさらに3つのコストがかかります)。私が理解していることから、最短経路の問題は最終的に2つのノードのみを考慮し、最適な経路から外れたノードは除外されます。車両のルーティングの問題の特殊なケースが最適であるように見えますが、それが非直接経路を考慮するかどうかはわかりません。 私の質問:この種の問題(家族)の定まった名前、定義はありますか?どのアルゴリズムとツールを使用して解決しますか? 計算量が多いと確信していますが、一般的な(無限のリソース)答えと実用的な答えの両方に興味があります。

4
海岸線を一般化するには?
基本的に世界の海岸線を表す多数のデータポイントがあります。正確な解像度はわかりませんが、5〜10mの範囲内だと思います。 ギザギザの海岸線を表す一連のポイントを想像してください。1mの解像度ではすべての詳細が表示され、海岸を正確に表すために50個のデータポイントが必要ですが、10kmの解像度では海岸は直線に見え、2ポイントしか必要ありません。 私は、データを「全惑星」解像度から「ストリート」解像度にスケーリングする必要があるマッピングアプリケーションを作成しています。データポイントの解像度を下げ、さらに広い解像度のデータ量を減らすための手助けが必要です。 私はベクタータイリングについて読んでおり、これが最良の解決策だと思います(私はすでにこのようなことをしています)が、低解像度では、データセットはまだかなりの意味で、それは[比較的]長い時間がかかります「有効な」データセットが小さいため全体のサブセットであるため、高解像度は高速です。 「フルプラネット」ビューのタイルデータが管理可能なサイズになるように、大規模なデータセットを取得してそのスケールを縮小する方法を決定しようとしています。より大きな完全なデータセットからタイルサブデータセットを作成するにはどうすればよいですか? ツールを使用できてうれしいですが、それがどのように行われるかを学ぶために自分でやろうと思っています。

4
Pythonのラスター上のポイントデータの双線形補間?
いくつかのポイント補間を行いたいラスターがあります。ここに私がいる場所があります: from osgeo import gdal from numpy import array # Read raster source = gdal.Open('my_raster.tif') nx, ny = source.RasterXSize, source.RasterYSize gt = source.GetGeoTransform() band_array = source.GetRasterBand(1).ReadAsArray() # Close raster source = None # Compute mid-point grid spacings ax = array([gt[0] + ix*gt[1] + gt[1]/2.0 for ix in range(nx)]) ay = …

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