問題タブ [great-circle]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
r - R で大円とループを使用してノードのサブセットを接続する方法
次のデータセットがあります。要約すると、ID、経度、緯度を持つ都市のリストです。それらはプロジェクトにも分割され、中央ノード (1) または放射状ノード (0) にすることもできます。これはその構造です:
そして、これは最初の行です:
ご覧のとおり、各プロジェクトの最初の都市は中央ノードです。そこで私が必要としているのは、プロジェクトごとに GREAT CIRCLES を使用して、この最初の中央ノードを残りの都市と接続することです。次のコード行で最初のプロジェクトを実行しました。しかし、私が必要としているのは、プロジェクトごとにこのプロセスを繰り返す一種の LOOP です。
事前に感謝し、この長い投稿を申し訳ありません. ラミロ
r - R data.table を使用して大規模なデータセットの大圏距離を計算する
地理参照データのかなり大きなデータセットがあります。約4900万件のレコードです。data.table パッケージを使用して、それをサブセット化し (元は 1 億レコードでした)、各ユーザーの地理座標の平均中心などの簡単な計算を行うことができました。
ユニーク ユーザー数は 214,600 で、各ユニーク ユーザーについて、すべてのレコードのすべての地理座標からそれらの地理座標の平均中心までの距離を計算する必要があります (大円の公式を使用、サンプル コードを参照)。つまり、列 V6 と V7 (それぞれ経度と緯度) を使用して、大圏距離の計算を行う必要があります。V4 は userID で、V3 は userImageID です。V8 (16 の列) は座標の精度です。V5 は時間フィールドで、既に昇順で並べ替え (順序付け) ています。
私の問題は、すべてのユーザーに排他的に対応する座標に対してのみコードを反復処理することができず、最初のレコードが他の 4,800 万レコードなどを実行するため、メモリが不足してしまうことです。
大圏距離の計算に独自の式を使用しようとしましたが、パッケージ化石と地圏の式も使用しましたが、結果はありませんでした。
これは、多かれ少なかれ私のテーブルがどのように見えるかです (そして、私が使用している列のみを呼び出しています)。ここには、4 つのジオタグ付き画像を持つ最初のユーザーのデータが表示されます。
そして私のコード:
ご回答ありがとうございます。
c# - 大圏距離の計算などを適切にテストするにはどうすればよいですか?
大円の計算のように、正確な値と等しくないものをテストする最良の方法は何ですか?
現在、私のテストは次のようになっています。
しかし、これは間違っているようです。最初に答えを見つけてから、それに対してテストしています。そのような方法はどのようにテストされるべきですか?アルゴリズム/計算を実行して、それがどのように機能するかを調べて、正確な値を生成できるようにする必要がありますか?
明確化: 私の質問は、これがそのようなことのテストを行う正しい方法です。テストを実際の実装にバインドする必要がありますか (ご覧のとおり、きめの細かい期待値を使用しているため)、または何らかの方法でより一般的なものにする必要がありますか?
python - Python - 2 つの大円の交点 (緯度/経度)
2 つの大円の間の交点 (緯度/経度、度) を計算しようとしています (そのため、大円ごとに 1 つずつ、始点と終点を表す 2 つの緯度/経度のペアを入力し、コードは想定されています緯度/経度の交点を返します)。thisやthisなど、他の投稿の手順に従いました。以下に私のコードを投稿します: 定義により、2 つの異なる大円は地球上の 2 つの場所で交差するため、大円のペアごとに 2 つの交点が返されます。残念ながら、間違った結果を返しています (Google Earth のすべてのポイントをプロットして数回テストしただけです)。
これは を返しますが、交点の 1 つについて(34.314378256910636, -164.51906362183226, -34.314378256910636, 15.480936378167755)
値を返す必要があります。(34.280552, -105.549375)
私が間違っていることについてのアイデアはありますか?ご助力ありがとうございます!
編集:将来の参考のために(誰かが同じ問題に遭遇した場合に備えて)、Ruei-Min Linのアドバイスに従って修正したため、44行目と45行目を次のように置き換えました。
python - Python の大円と菱形線としての 2 点間の緯度経度距離
私のコードを考えると:
これがPythonよりも数学固有の質問であるかどうかはわかりません。これは、緯度/経度座標に基づいて、指定された 2 点間の距離を計算するスクラップブック コードです。
私のコードは機能しているように見えますが、結果が約 12nm (私のコードは 17.3nm を示しています) である私の物理マップに基づいて測定した結果として、結果は約 5nm (海里 1nm = 1.8km) 高すぎます。
問題は何ですか?間違った地球半径を使用していませんか? 物理地図の射影タイプを半径で考慮する必要はありますか?
私は今、このようなことをしているライブラリがあり、彼らはそれをよりうまくやっています;)しかし、コードを捨ててライブラリを使用する前に、コードの問題を知りたいです。
mysql - MySQL 半径検索
半径検索でアプリケーションを作成しています。これは私が学んだ例です
https://developers.google.com/maps/articles/phpsqlsearch_v3#findnearsql
私の場合
そうです
SELECT (3959 * acos(cos(ラジアン(-37.814107)) * cos(ラジアン(緯度)) * cos(ラジアン(lng) - ラジアン(144.96327999999994)) + sin(ラジアン(-37.814107)) * sin(ラジアン(緯度) )))) AS距離;
緯度 = -37.8141070000、経度 = 144.9632800000 の場合
SELECT (3959 * acos(cos(ラジアン(-37.814107)) * cos(ラジアン(-37.8141070000)) * cos(ラジアン(144.9632800000) - ラジアン(144.96327999999994)) + sin(ラジアン(-37.814107)) * sin(ラジアン( -37.8141070000)))) AS 距離;
MySQL が距離を NULL として出力するのはなぜですか? 私は何か間違ったことをしましたか?
どうすれば修正できますか?申し訳ありませんが、私は数学が本当に苦手です。
javascript - 大円の制限
大円問題の半径を制限する必要があります。円は別のアイテムに当たるまで伸びます。
円の範囲を 5 マイルに制限する必要があります
これが私のコードです