問題タブ [libspatialindex]
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.
c++ - Spatialindexライブラリを使用したR*ツリーの一括読み込み
レコードを1つずつ250万回挿入する空間ライブラリを使用してR*ツリーを正常に構築した後、バルクロードを使用してR*ツリーを作成しようとしました。データをBulkLoaderに繰り返し提供するためにDBStreamクラスを実装しました。基本的に、次のメソッドを呼び出し、バルクローダー用のData(コード内のd変数)オブジェクトを準備しました。
DBStreamオブジェクトを初期化し、次の方法で一括読み込みを呼び出します。
一括読み込みでは、next()関数とhasNext()関数を呼び出し、データを取得して並べ替えてから、構築フェーズで障害をセグメント化します。手がかりはありますか?ええ、エラーは次のとおりです。
c++ - C++ 空間インデックス ライブラリ: メイン メモリ RTree をディスクから、またはディスクにロード/保存する
次の方法で、spatialindex ライブラリを使用してメイン メモリの R* インデックスを作成しました (DBStream は、bulkLoading のインターフェイスを実装しています)。
私のデータは読み取り専用です。つまり、ツリーを 1 回だけ作成して保存し、プログラムを使用するたびに永続ストレージから再ロードしたいと考えています。明らかに、memStorage を自分で保存してロードすることはできますが、そこから RTree を再作成するにはどうすればよいでしょうか?
c++ - Spatialindexライブラリを使用したRツリーの(再)ロード
私はspatialindex(http://libspatialindex.github.com/)ライブラリを使用してRツリーをバルクロードしています:
構築されたツリーに関する情報で、以下が出力されます。
今、私はディスクに保存したものをロードしようとしています:
ツリーにはノードが1つだけあります(ツリーの出力は次のとおりです)。
私は何を間違えますか?ツリー全体をディスクからロードしないのはなぜですか?
c++ - MyDataStream stream(argv[1]) にオブジェクトとして渡される入力データ ファイルの形式
R ツリー インデックスを作成するために「libspatialindex」ライブラリを使用しています。私のデータは次の値を持つ 2 次元です。
データの説明は次のとおりです。
上記のデータを R-Tree に一括ロードしようとしています。そのために、libspatialindex の次のテスト コードを使用しています。ただし、オブジェクトとして * MyDataStream stream(argv[1]);に渡される入力データ ファイルの形式がどうあるべきかについてはわかりません。*
私が使用しているテストコードは次のとおりです。
c++ - C/C++ で一括読み込み中にエラーが発生しました
r ツリーの構築にlibspatialindex ( http://libspatialindex.github.io/ ) ライブラリを使用しています: r ツリーに (緯度、経度) を一括ロードする次のコードを使用しています。特定の場所の一括読み込み (id、緯度、経度) が必要です。次のコードは、一括読み込みを実行します。しかし、入力ファイルを受け入れない理由がわかりません。libspatial インデックスのドキュメントがないため、混乱しています。
入力には、次のファイルを使用しています。
しかし、次のエラーが発生します。
誰かが私がどこで間違っているのか教えてください!!
c++ - libSpatialIndex: ディスク上のインデックスの読み込み/保存
ポイントがたくさんあり、それらに対して最近傍検索を行う必要があるため、libSpatialIndex を使用しています。コードは非常に単純で、ライブラリはデータをディスクに保存するオプションを提供しますが、ロードできません。
コード:
その直後にプログラムは終了します。「indexTest.dat」8.8MBと「indexTest.idx」0kBの2つのファイルが実際にメモリ内に作成されますが、初期化直後にクエリを実行したり、インデックス内の要素数を確認したりすると、失敗し、ノードには1つしかありません木。
私はすでに質問を見ました: (Re)loading the R Tree with spatialindex library
C++ 空間インデックス ライブラリ: メイン メモリ RTree をディスクから、またはディスクにロード/保存する
しかし、Index を使用しているため成功しませんでした。RTree を直接使用すると、データの挿入が 1000 倍遅くなります。
r-tree - libspatialindex を Google Colaboratory にインストールする方法
Python で空間データを効率的に分析するために、libspatialindex C ライブラリに依存する rtree 空間インデックス ライブラリを使用します。
を使用して Google Colaboratory ノートブックに rtree を正常にインストールできました!pip install rtree
。
予想通り、libspatialindex を最初にインストールする必要があるため、これでは十分ではありませんimport rtree
。
OSError: Could not find libspatialindex_c library file
Google Collaboratory に外部ライブラリをインストールするかどうか、またその方法がわかりません。https://github.com/libspatialindex/libspatialindex/wiki/1.-Getting-Startedに従って実行できまし!curl -L http://download.osgeo.org/libspatialindex/spatialindex-src-1.8.5.tar.gz | tar xz
たが、構成の権限がありません:
!spatialindex-src-1.8.5/configure
/bin/sh: 1: spatialindex-src-1.8.5/configure: Permission denied
c++ - 「undef」を使用せずにマクロを再定義することは可能ですか?
libspatialindexのソース コードを理解しようとしています。C++ を初めて使用するので、マクロの概念に頭を悩ませています。ライブラリの C 用 API ラッパーであるsidx_api.ccには、直接的または間接的に多数のヘッダーが含まれています。そのうちの 2 つは、「undef」を使用せずに、動的ライブラリとのインターフェイスに関係する同じマクロを定義しているように見えます。
「undef」なしでマクロを再定義することには問題があると思います。たとえば、こちらとこちらで説明されています。ここで何か不足していますか?ありがとう。
pyinstaller - pyinstaller EXE OSError: spatialindex_c-64.dll が見つからないか読み込めませんでした
Windows 10 64ビットを使用してexeを作成しています。ただし、exe は以下のエラーを返します: File "rtree\core.py", line 126, in OSError: could not find or load spatialindex_c-64.dll [23324] Failed to execute scriptmicrowave_python_code
以下の解決策 ppl 共有を試しましたが、それでも問題を解決できません。
- --add-data=C:\path\to\spatialindex_c-64.dll;. 私のビルドコマンドに
- pip で rtree をアンインストールしてから、「Rtree-0.9.4-cp37-none-win_amd64.whl」を使用してインストールします。
- 「spatialindex-src-1.9.3.tar.gz」をインストールします
- 「spatialindex_c-64.dll」を rtee サイトのパッケージ フォルダーにコピーしました
- 「spatialindex_c-64.dll」をexeフォルダーにコピーしました
上記を実行して、動作するexeを作成できる人はいますか? 上記の解決策を試した後も、まだ問題に直面しています。私のexeを動作させるために他にできることはありますか?