LoginSignup
0
0

More than 1 year has passed since last update.

Deno で COPC の範囲情報を取得する

Last updated at Posted at 2022-12-02

はじめに

Smart Maps に取り組むことができるようになって、新たに点群を取り扱えるようになりました。Virtual Shizuoka の点群データ(静岡点群)を Cloud Optimized Point Cloud に変換して自家用オブジェクトストレージから提供する Tansei プロジェクトを進めています。

デモサイト

COPC のメタデータをスクリプトで取り出したい

現在、静岡点群の LAS ファイルを取り出しては PDAL で COPC に変換して自家用オブジェクトストレージにアップロードするバッチを長期運用で流しているところですが、低速なオブジェクトストレージから COPC の範囲情報を取り出すためには、メタデータの必要なところをスマートに取り出す必要があると思っています。

そのために、connormanning/copc を使ってみたいと思います。実装を除いてみたところ、スマートにデータを取り出すように作られているように見えたからです。

JavaScript のコマンドラインスクリプトを久しぶりに書くので、Deno で書いてみます。

コード

こんな感じかなと思います。

reentry.js
import { Copc } from 'npm:copc'
import proj4 from 'npm:proj4'

const url = 'https://x.optgeo.org/tansei/08nd7773.copc.laz'
const copc = await Copc.create(url)

console.log(proj4(copc.wkt).inverse(copc.header.min))
console.log(proj4(copc.wkt).inverse(copc.header.max))

実行

こんな感じで、うまくいきました。

$ deno run --allow-read --allow-sys --allow-net reentry.mjs 
[ 138.38170965503224, 34.977754143479515, 18.09 ]
[ 138.3860944932108, 34.980462747653114, 52.18 ]
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0