問題タブ [lidar]
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.
statistics - LiDAR クラウド (.las ファイル) からの説明情報の抽出
私は .las (LIDAR データ) ファイルを持っています。たとえば、幅と高さ (キロメートル) の長さなど、サイズを知りたいと思いました。
この種の情報を取得するにはどうすればよいですか?
c++ - 大きな点群を処理するための優れたCまたはC++ライブラリはありますか?
基本的に、LIDARまたはスキャナーからの大きな点群を処理するためのライブラリまたはSDKを探しています。通常、X、Y、Z、カラーの何百万もの点にぶつかります。私が求めているのは次のとおりです。
高速表示、ズーム、パンポイントクラウド登録データへの高速低レベルアクセスサーフェスとソリッドの回帰(他のものほど重要ではありません)
リーズナブルな商用ライブラリにお金を払ってもかまいませんが、非常に高価なライブラリ(たとえば、約5,000ドルを超える)や、ユーザーあたりのランタイムライセンスコストがかかるライブラリには興味がありません。オープンソースも良いでしょう。私はグーグルでいくつかの可能性を見つけましたが、それらはすべて私の予算に対して高すぎる傾向があります。
visual-c++ - ArcSDK.hがデフォルトパスに見つかりません
デフォルトでは、.. \ include\CPPAPIにあります。しかし、私のマシンでは、このフォルダーは存在しません。「CatIDs」フォルダーと「GridIDs」フォルダーのみが\includeに存在します。ArcGISDesktop9.3とそのVC++SDKをインストールしました。
私はArcGISとLiDARを初めて使用し、LASファイルと対応するテキストバージョンを持っています。必要なのは、txtファイルをshpファイルに変換することだけです。これを実行できるサンプルコードが1つ見つかりました。これには、ArcSDK.hが含まれています。
助けてくれてありがとう。
performance - IO バウンド OpenGL アプリケーションの高速化
私は最近、理想的には LIDAR キャプチャからの地形データ ポイントを視覚化し、それらを約 30 fps で連続して表示できるポイント クラウド プレーヤーに取り組んでいます。しかし、私は PCI-e IO によって壁にぶつかったようです。
フレームごとに行う必要があるのは、メモリに保存されている大きなポイント クラウドをロードし、高さによるカラー マップを計算し (Matlab のジェット マップに似たものを使用しています)、データを GPU に転送することです。これは、ポイントが 100 万未満のクラウド キャプチャでうまく機能します。ただし、約 200 万ポイントで、速度が低下し始め、毎秒 30 フレームを下回ります。これは大量のデータであることを認識しています (ポイントあたり 200 万フレーム * [ポイントあたり 3 フロート + カラー ポイントあたり 3 フロート] * フロートあたり 4 バイト * 1 秒あたり 30 フレーム = 1 秒あたり約 1.34 ギガバイト) 。
現在、レンダリング コードは次のようになっています。
vertData と colorData のポインターはフレームごとに変更されます。
私ができるようにしたいのは、後でフレームあたり最大 700 万ポイントに達する可能性のある大きな点群を使用する場合でも、最低 30 フレーム / 秒で再生できるようにすることです。これは可能ですか?それとも、それらをグリッドにして高さマップを作成し、何らかの方法で表示する方が簡単でしょうか? 私はまだ3Dプログラミングにかなり慣れていないので、アドバイスをいただければ幸いです。
matlab - LIDAR デバイスを MATLAB とどのように接続しますか?
ホクヨ USB LADAR/LIDAR を持っています。それらのソフトウェア パッケージですべての処理を実行できるように、MATLAB/Simulink とのインターフェイスまたは接続に問題があります。
北洋さんに聞いてみました。C++ プログラム インターフェイス (サンプル プログラミング ガイドとライブラリ) のみを提供します。これを MATLAB/Simulink に接続するにはどうすればよいですか?
python - Pythonを使用してファイルのフィールドセパレータを変更するには?
私は R の世界から Python を初めて使用し、データ列で構造化された大きなテキスト ファイルに取り組んでいます (これは LiDaR データであるため、通常は 6000 万以上のレコードがあります)。
for
ファイルを読み取って行をループすることなく、このような大きなファイルのフィールド区切り文字を変更することはできますか (たとえば、タブ区切りからコンマ区切りに) 。
sql-server-2008 - SQL Server 2008 上の 7,000 万の非常に高密度の空間点群に対する最近傍クエリを最適化する
SQL Server 2008 R2 Express データベースには約 7,500 万のレコードがあります。それぞれは、ある値に対応する緯度経度です。テーブルには geography 列があります。特定の緯度経度 (ポイント) の最近傍を見つけようとしています。空間インデックスを使用したクエリが既にあります。ただし、レコードがデータベース内のどこにあるか (たとえば、第 1 四半期か前四半期か) によっては、クエリが最近傍を見つけるのに約 3 秒から 30 秒かかる場合があります。クエリまたは空間インデックスを最適化することで、これを最適化してより高速な結果を得ることができると思います。現在、デフォルト設定でいくつかの空間インデックスを適用しています。これが私のテーブルとクエリの外観です。
私が使用している空間インデックス:
私が使用しているクエリは次のとおりです。
これは、私のデータベースの緯度経度のサンプルです。精度と密度のアイデアを提供します。7,000 万件のレコードはすべて 1 つの都市のものです (Lidar データ)
このクエリでは、上記の結果が得られますが、パフォーマンスを可能な限り改善したいと考えています。私の推測では、空間インデックスのデフォルト値を微調整することで、パフォーマンスを改善できる可能性があります。何か手がかりはありますか?
バッファを 10 から 1000 まで変えてみましたが、結果はほぼ同じでした。
また、パフォーマンスを改善するためのその他の提案も歓迎します。
私が現在使用しているシステムは次のとおりです。
bing-maps - 動的ラスター(ライダー)データをGeoserver、Bing Maps、GoogleマップなどのWebマップにゼロから表示する
高品質のLiDARデータがいくつかあります。それを動的に処理し、その時点での入力と標高に応じてフィールド(標高フィールドではない)を更新する必要があります。これが完了したら、このラスターデータをWebマップ(Bing Map、Googleマップなど)にできるだけリアルタイムで表示する必要があります。これまでにできることは次のとおりです。ArcGISPythonLibを使用して、LIDARクリップを処理し、フィールドを追加し、入力に応じてそのフィールドを更新するスクリプトをいくつか作成しました。これで、基本的にすべてが可能になりました。ラスター上のポイントは、5分ごとに3つのカテゴリに分類されます。このラスターをarcGISで表示すると、ベースマップ上に重なった3色のラスターを表示できます。
しかし今、私はこれらのラスタークリップをWebマップ上にレンダリングする必要があります。私の最初は、これらの分類されたクリップをポリゴン化し、JavaScriptマップにポリゴンを表示することでした。しかし、ポリゴン化には多くの時間がかかるため、ポリゴン化は排除されます。
今私が持っている他のオプションは、GeoServerのラスターレンダリング機能を使用して画像を表示することです。次に、私が作成したこのWMSを使用して、BingMapsに重ねます。これは私が立ち往生しているところです。Geoserverがサポートするラスター(Geotiff、jpg200oなど)をADFファイルから自動的に取得し、最初に開いているレイヤーでレンダリングしてから、BingMapでオーバーラップさせる方法がわかりません。
マップ上で動的に変化するラスターのこの種のレンダリングを行う優れたチュートリアルを誰かが知っているなら、私にそれを指摘していただければ素晴らしいでしょう。
また、この種のシステムを導入するためのより良いアプローチが他にある場合は、提案してください。私はほとんどすべての解決策を受け入れています。
ありがとう
PS:私は、Webプログラミング、Webサービス、データベース、スクリプトなどがかなり得意です。しかし、LidarとGeo-Rasterを使用するのは初めてです。
c++ - 四分木の設計を改善しますか?
LIDAR ファイルから大量のポイント クラウド データを表示および変更するために使用するアプリケーションがあります (それぞれ最大数ギガバイトで、同時に読み込まれることもあります)。アプリでは、ユーザーはロードされたポイントの 2D 画像を (上から) 表示し、プロファイルを選択して別のウィンドウで (横から) 表示することができます。繰り返しますが、これには数百万のポイントが含まれ、それらは OpenGL を使用して表示されます。
データを処理するために、四分木ライブラリもあり、機能しますが、非常に低速です。しばらく使用されていましたが、最近、LIDAR ポイントの形式が変更され、LidarPoint オブジェクトに多数の属性 (クラス メンバー) を追加する必要がありました。これにより、サイズが大きくなり、パフォーマンスがほとんど使用できないレベルにまで影響しました (5 分と考えてください)。単一の 2GB ファイルをロードする場合)。
四分木は現在、指定された容量と定義された境界 (空間クエリ用) を持つ LidarPoint オブジェクトの単純な配列である PointBucket オブジェクトへのポインターで構成されています。バケット容量を超えると、4 つのバケットに分割されます。また、ポイント データが大量のメモリを消費している場合に、ポイント バケットがディスクにダンプされるようにする、一種のキャッシュ システムも用意されています。これらは、必要に応じてメモリにロードされます。最後に、すべての PointBucket には、元のデータの n 番目ごとのポイントを保持し、ズーム レベルに応じてデータを表示するときに使用されるサブバケット/解像度レベルが含まれます。これは、一度に数百万のポイントを表示するのは、そのレベルの詳細は必要ありませんが、非常に遅いためです。
そこからイメージしていただければ幸いです。そうでない場合は、お問い合わせください。詳細を提供するか、さらにコードをアップロードできます。たとえば、現在の(そして遅い)挿入方法は次のとおりです。
私の質問は、このデザインを改善する方法を考えられるかどうかです。メモリに収まらない大量のデータを処理するときの一般的な戦略は何ですか? 四分木をより効率的にするにはどうすればよいですか? ポイントのレンダリングを高速化する方法はありますか?
3d - Leica ScanStation C10 出力ファイル形式
これはライカが公開していない独自のファイル形式です。ScanStation からのデータを処理するには、Cyclone と呼ばれる独自の (Windows のみ) ソフトウェアを使用する必要があります。
これらの .bin ファイルの内部構造に関するヒントを提供できる人はいますか?