緯度と経度を使用した距離の計算<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />郵便番号または緯度と経度を使用して米国の州間の距離を計算する方法を知っている人はいますか?
Re: 緯度と経度を使用した距離の計算やあ@ron_horne
早速お返事をいただきありがとうございます!
スクリプトをもう少し検討したところ、私の側に問題があることがわかりました。 問題なく距離を計算することができました。
どうもありがとうございます!
Re: 緯度と経度を使用した距離の計算やあ@MerGrung 、
使用しているデータとスクリプトのサンプルを投稿していただければ、修正させていただきます。
そうしないと、エラーの原因を特定することが困難になります。
2016 年以降に変更された可能性が最も高いのは、サンプル データへの参照です。私の元のスクリプトには、JMP11 x86 への参照がありました。それ以降のバージョンを使用している場合は、必ずエラー メッセージが表示されます。
Re: 緯度と経度を使用した距離の計算やあ@ron_horne 、
このスクリプトを使用して距離を計算しようとしましたが、エラー メッセージが表示されました。 2016年の脚本なので変わっている部分もあるのかな?
スクリプトを更新していただければ幸いです。
Re: 緯度と経度を使用した距離の計算やあ@mjvincent87と@jenkins_macedo
これを行うもう 1 つの方法は、データ テーブルの列式を使用することです。次のスクリプトを試してください
Clear Globals();
Names Default To Here( 1 );
// Open data file
dt = Open( "$SAMPLE_DATA/Cities.jmp" );
// add column for distance
dt << New Column( "latrad", formula( :Latitude * (Pi() / 180) ) );
dt << New Column( "longrad", formula( :Longitude * (Pi() / 180) ) );
dt << New Column( "Distance", Numeric,
formula(
6371.00 * 2 * ATan(
(Sin( (:latrad - Lag( :latrad, -1 )) / 2 ) ^ 2 + Cos( :latrad ) * Cos( Lag( :latrad, -1 ) ) * Sin( (:longrad - Lag( :longrad, -1 )) / 2 )
^ 2) ^ 0.5,
(1 - (Sin( (:latrad - Lag( :latrad, -1 )) / 2 ) ^ 2 + Cos( :latrad ) * Cos( Lag( :latrad, -1 ) ) * Sin(
(:longrad - Lag( :longrad, -1 )) / 2
) ^ 2)) ^ 0.5
)
)
);
dt << New Column( "Bearing", Numeric, "Continuous", Format( "Latitude DMS", "PUNSGN", 15, 0 ),
formula(
brng = Mod(
((ATan(
Sin( Lag( :longrad, -1 ) - :longrad ) * Cos( Lag( :latrad, -1 ) ),
Cos( :latrad ) * Sin( Lag( :latrad, -1 ) ) - Sin( :latrad ) * Cos( Lag( :latrad, -1 ) ) * Cos( Lag( :longrad, -1 ) - :longrad )
)) * 180 / Pi()) + 360,
360
)
)
);
Re: 緯度と経度を使用した距離の計算やあ@mjvincent87
このスクリプトを見て、それがあなたが考えている方向かどうか教えてください。
Clear Globals();
Names Default To Here( 1 );
// open data file (dots) - this includes the observation we want to update
dt = Open( "$SAMPLE_DATA/Hurricanes.jmp" );
// introduce the column with the distance to be updated in the dots table
dots << New column ( "Distance", Numeric );
// introduce the column with the distance to be updated in the dots table
Dots << New Column("Bearing", Numeric, "Continuous", Format("Latitude DMS", "PUNSGN", 15, 0));
// extract the longitude and the latitude values from the table - as radians
x = (Column( dots, "Longitude" ) << getValues) * Pi() / 180 ;
y = (Column( dots, "Latitude" ) << getValues) * Pi() / 180 ;
// declare the distance calculation function in KM based on world radius of 6371 KM.
// For statute miles multiply final distance d by 0.621371.
// For nautical miles multiply final distance d by 0.539957
haversine = Function( {long1, lat1, long2, lat2, R = 6371.009},
{Default Local},
a = Sin( (lat1 - lat2) / 2 ) ^ 2 + Cos( lat1 ) * Cos( lat2 ) * Sin( (long1 - long2) / 2 ) ^ 2;
c = 2 * ATan( a ^ 0.5, (1 - a) ^ 0.5 );
d = R * c // *0.621371 For statute miles;
);
wait (0.01);
// run the function along the rows of the table
For( i = 1, i <= N Row( dots ) - 1, i++,
dots:distance[i] = haversine( x[i], y[i], x[i + 1], y[i + 1] )
);
// Declare the Bearing calculation function
Bearing = function ({long1, lat1, long2, lat2 },
{Default Local},
abc = sin (long2 - long1) * cos (lat2);
def = cos (lat1) * sin (lat2) - sin (lat1) *cos (lat2) * cos (long2 - long1) ;
brng = mod (( (atan ( abc, def )) * 180 / pi() ) + 360 , 360) ;
);
wait (0.01);
// run the Bearing function along the rows of the table
For( i = 1, i <= N Row( dots ) - 1, i++,
dots:Bearing[i] = Bearing( x[i], y[i], x[i + 1], y[i + 1] )
);
一番、
ロン
Re: 緯度と経度を使用した距離の計算驚くべき数式のコレクション:
http://www.movable-type.co.uk/scripts/latlong.html
Re: 緯度と経度を使用した距離の計算ron_horne に改めて感謝します!いくつか質問があります:
出力が法定マイルであることを確認したいだけですよね?
また、2 つの座標間の方位を指定するスクリプトはありますか?
Re: 緯度と経度を使用した距離の計算やあロンホーンそしてあなたが元気でいることを願っています。 このスレッドで最後にチャットしてから時間がかかったのは承知しています。 プロジェクトは保留されましたが、現在は稼働しており、約数週間後には、結果として得られたテーブルがキャンペーン チームによって運用環境にデプロイされる予定です。
スクリプトを適用したところ、期待どおりに完璧に動作しました。 よくやった!!
ご存知のとおり、このスクリプトは (緯度経度および緯度経度) から (緯度経度および緯度経度) までのペア間の距離を計算します。これは、プロジェクトが元々キャプチャするように設計されていたものです。 結果の距離を使用して、各世帯が自宅から 1 時間、3 時間、または 5 時間離れたプログラムに参加するのにかかる時間を計算しました。
ここで、問題は、緯度の各ペア間の距離を計算するスクリプトを作成したいということです。そしてロング。
例えば:
以下の表では、行 1 の緯度のペア間の距離と時間を計算しました。 & 長さ。 どれが完璧ですか!!これは 20 行すべてに適用され、世帯の場所からプログラムの目的地までの 20 個の一意の距離が得られます。
したがって、行 1 には PS Lat を含むプログラム #15896 が入ります。 56.47 N & PS ロング。 南緯 132.38 度は、緯度が HH の世帯から一定の距離にあります。 &HHロング。
各プログラムからの各世帯の距離を知りたいので、JMP が最初のプログラムだけでなく、各プログラムの緯度と経度にわたって各世帯の緯度と経度の間の距離を取得するにはどうすればよいでしょうか? このテーブルには 20 行あり、これまでに説明したことを使用すると、わずか 20 行ではなく 400 個の差分距離計算が必要になります。 これを回避する方法を知っていますか?
私のオリジナルの HH データ テーブルには、156,737 件の固有の世帯レコードがあり、それぞれの緯度の HH が記載されています。 &HHロング。 世帯ファイルには 15,655 の固有の緯度経度が含まれています。 &HHロング。
329 の固有の PS Lat を含む 2,747 の固有のプログラム番号を含むプログラム データ テーブル。 &追記長いです。 各世帯の緯度からの距離を計算したいと考えています。 & Long それぞれの固有のプログラム緯度を表示します。 & Long.、距離が各プログラムにわたって計算されるようにします。 これは 15,655 *329 となり、結果のテーブルまたは合計距離は約 5,150,495 レコードになるはずです。

Re: 緯度と経度を使用した距離の計算ありがとうロンホーン。 試してみた結果はまたお知らせします。 でも見た目は素晴らしいと思います! 大きなTX
Re: 緯度と経度を使用した距離の計算やあジェンキンス.マセド、
私の元のスクリプトは、連続する 2 つの行の間の距離をキロメートル単位で計算しました。
各行のマイル距離を生成するように修正しました。
これをあなたのテーブルの上で試してみてください
グローバルをクリアする() ;
デフォルトの名前はここにあります( 1 ) ;
// データテーブルを参照する
dt =現在のデータテーブル() ;
// 更新する距離を含む列をドットテーブルに導入します
dt <<複数の列を追加する( "距離" 、 1 、後( 6 ) 、数値) ;
// テーブルから経度と緯度の値をラジアンとして抽出します
HHx = (桁( dt 、 「北緯経度」 ) <<値の取得) *円周率() / 180 ;
やあ= (桁( dt 、 「HHラティチュード」 ) <<値の取得) *円周率() / 180 ;
PSx = (桁( dt 、 「PS経度」 ) <<値の取得) *円周率() / 180 ;
PSy = (桁( dt 、 「PSラティチュード」 ) <<値の取得) *円周率() / 180 ;
// マイル単位で計算関数を宣言します
ハバーシン=関数( {長い1 、緯度1 、長2 、緯度2 、 R = 6371 } 、
{デフォルトのローカル} 、
ある=罪( (緯度1 -緯度2 ) / 2 ) ^ 2 +コス(緯度1 ) *コス(緯度2 ) *罪( (長い1 -長2 ) / 2 ) ^ 2 ;
c = 2 *日焼け(ある^ 0.5 、 ( 1 -ある) ^ 0.5 ) ;
d = ( R * c ) * 0.6213712 ;// マイル
) ;
待って( 0.01 ) ;
// テーブルの行に沿って関数を実行します
ために(私= 1 、私<= N列( dt ) - 1 、私++、
dt :距離[私] =ハバーシン( HHx [私] 、やあ[私] 、 PSx [私】 、 PSy [私】 )
) ;
Re: 緯度と経度を使用した距離の計算やあロンホーン「次までの距離」スクリプトを使用して、緯度と経度の座標の 2 つのペアの間の距離を計算しようとしましたが、スクリプトが機能しないか、私が何かを正しく行っていない可能性があります。 テーブル table の最初の 20 行を添付します。 緯度経度、緯度経度から緯度経度、緯度経度までの距離(マイル単位)を知りたいです。 数式をデータに適合させることができれば、もっと速くできると思います。 テーブルに 200 万行以上あるため、座標ごとに線を引く必要があるのか、時間がかかりすぎるのか、それとも自動化できるのか、ここで距離ツールがどのように機能するのかよくわかりません。 Mapping: JMP Geocoder を使用して、以下の座標を生成しました。 どうしますかロンホーンまたは、以前に投稿された次のスクリプトまでの距離でこれらをカスタマイズする人がいますか? 助けていただければ幸いです。 ありがとう
以下の変数の情報:
郵便番号: は、Progra Start 郵便番号 (PS) に一致する世帯 (HH) です。
プログラム番号: これらの番号は、同じプログラムと世帯の郵便番号内の世帯に宣伝したいと考えている、当社が提供するプログラムを反映しています。
HH 緯度: 世帯の郵便番号に関連付けられた緯度
HH経度: 世帯の郵便番号に関連付けられた経度
PS Latitude: プログラム開始郵便番号に関連付けられた緯度。 そこがプログラムのスタート地点です。
PS Longitude: プログラム開始郵便番号に関連付けられた経度。 そこがプログラムのスタート地点です。

Re: 緯度と経度を使用した距離の計算素晴らしい! ありがとうロンホーン。 私は最初に Geocoder-Map を使い始めました。 しかし、私は SDA を持っていたこともわかりました。 距離ツールもダウンロードしました。 どれもとてもクールです。 私がやろうとしていることは非常にシンプルで簡単です。 市および州ごとの位置の使用 - (郵便番号/地理座標)私たちのプログラムとデータベース内の世帯の郵便番号。 私は、居住地から 50 マイル以内にあるプログラムと 100 マイル以内にあるプログラムを比較する単純なファイルを作成しており、キャンペーン チームに、以前の関心に基づいて、車で 1 ~ 2 時間以内の定期的な電子メール マーケティング キャンペーンとして 2 ~ 3 つのプログラムを提案しました。
Re: 緯度と経度を使用した距離の計算ここから始めてみませんか?
アドイン: 空間データ分析
そしてここ
距離ツールアドイン
または、数式を使用した別のオプションについては、添付のスクリプトを確認してください。
ロン