問題タブ [geosphere]

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.

0 投票する
1 に答える
1148 参照

r - 大きな地理的距離行列を計算する方法

IDと座標のデータフレームがあります。すべての ID 間の地理的距離を計算し、互いに離れすぎている ID を削除してから、分析を続行する必要があります。

30k x 30k のマトリックスを生成する 30k の ID があります。以下にサンプルを示します。

geosphere最初に、パッケージを使用して、まっすぐに行こうとしました:

メモリの問題のため、これは機能しませんError: cannot allocate vector of size 15.4 Gb。私の2番目の試みは、最初にすべてのペアワイズ組み合わせを事前に生成し、元のデータセットとマージして緯度と経度を取得してから、次のような距離を計算することでした.

ただし、expand_grid はメモリ不足になります。結果の行列は 900mi 行 x 2 列になるので、これは私には奇妙です。私はすでに、より大きなデータセット (200 mi x 50 行列など) を扱っています。

別の観察として、整数で解決できるかどうかを確認するために などの ID を使用してnew_id = seq(1L,30000L,1L)みましたが、展開しようとすると同じメモリの問題が発生します。

私は現在、16 GB RAM デスクトップに加えて、これらの構成を使用しています。

これらの距離を計算する方法を誰か教えてもらえますか? そして、より大きなオブジェクトを構築できるのに、なぜこの特定の expand.grid を生成できないのでしょうか?