サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
衆院選
hfu.hatenadiary.org
Wikipedia に示されている、「RGBと色相の関係(三角関数を使わない場合)」をもとに、色相 [rad] を色相スケール上の色 (RGB) に変換するスクリプトを作りました。 動機 ベクトルデータに対して付与する角度属性を QGIS 上で可視化したいのですが、よいカラースキームがありません。色相環を使おうと思いました。 角度と色との関連づけをする QML ファイル *1 を作れば良いと思っているのですが、まずは色相と色との間の関数を実現しようと思いました。 資料 色相 - Wikipedia にある ファイル:HSV-RGB-comparison.svg - Wikipediaのグラフに示されている関係を実現しようと思いました。 実装 Hue::to_rgb(h) に色相をラジアンで入れると、RGB 値が配列で返されるという仕様でいきます。 実装はこんな感じです。 class Hue
自由に使える経緯度の符号化法 Geohash がグリッドとしても座標表現としても使えてうれしいです。 Geohash とは? Geohash (http://en.wikipedia.org/wiki/Geohash) が色々と使われているようです(http://zcologia.com/news/759/geohash-and-bigtable/) 。 この Geohash、ビット列を経度・緯度の順に交代に2分割するように解釈し、BASE32 で符号化するもので、Wikipedia の短い記事で仕様が完結しており、自由に使えます。 この Geohash、よく考えられていると思います。Geohash は点を表現するものですが、その点と同じ Geohash を持つ面のグリッドであると解釈することも簡単です。グリッドと座標の表現を、Geohash 一つで済ますことができます。 Geohash
経緯度からWeb Mercator座標を計算するコードを 経緯度とGoogle Mercatorとの変換式を確認してみる(OpenLayers & Proj4js)。 - Relevant, Timely, and Accurate から取り出して、タイル矩形を EPSG:3857 の GeoTIFF に吐き出せるようにするコードを完成しました。 経緯度からWeb Mercator座標を計算するコード 経緯度とGoogle Mercatorとの変換式を確認してみる(OpenLayers & Proj4js)。 - Relevant, Timely, and Accurate の JavaScript コードを Ruby コードに翻訳しただけです。 def lng2mx(lng) lng * 20037508.34 / 180; end def lat2my(lat) Math::log(M
配列の中から指定した数の組み合わせを返すメソッド Array#c を考えてみました。Combinadic の Ruby 実装です。 使い方 array.c(n) => 配列からn個の要素を取り出す組合せの数を返します。 array.c(n) {|c| ...} => 配列からn個の要素を取り出す組合せをブロックに渡します。 実装 # combinadic.rb class Array # get combinations. # when called without a block, returns the number of combinations. # when called with a block, pass each combination to the block. def c(n_token, &block) if n_token > size raise "combina
1点からの半径検索は、データを単純なメルカトル投影 (例えばいわゆる Google 投影)に投影しておいて、検索点を検索距離だけ高緯度にずらした所の縮尺係数を掛けた矩形を使って検索をするのも手。 というような主張を、何回かのエントリに分けて行っていきたいと思っています。今回は、「いわゆる Google 投影」を導入します。 きっかけ ここギコさんのエントリ: latlongをUTM(ユニバーサル横メルカトル図法。m単位の直角座標系)に変更し、その上でdistance関数を使って範囲検索を行っていました。 http://kokogiko.net/m/archives/002135.html 問題があるとすれば、UTMは経緯度範囲で適用する座標系が異なるので、複数の座標系をまたがるような範囲に対してサービス提供するアプリケーションの場合、その範囲の座標系毎に関数インデックスを張っておかないとい
d:id:hfu:20071211, d:id:hfu:20071212 の続きとして、ポリゴンの単純化を実際にやってみました。 geotools.rb の改変 geotools.rb を改変し、ポリゴンの単純化に必要なクラスを取り込むようにしました。このエントリのスクリプトを実行するには、http://svgmapdata.sakura.ne.jp/geotools/ にある geotools.rb (Time-stamp: <2007-12-13 05 : 47 : 35 hfu> 以降)を使ってください。 ポリゴンの単純化に必要なクラスとは ポリゴンの単純化をしてくれるクラスには以下の2つがあります: com.vividsolutions.jts.simplify.DouglasPeuckerSimplifier 地図学的なベクトルデータの単純化アルゴリズムとしては古典的であるらしい
いつも読ませていただいているブログ「ここのことはなかったことにするかも (d:id:yellow_73)」の「レンダリングにありえない時間がかかった理由 (id:yellow_73:20071210)」に、こんなコメントを書かせていただきました: こんにちは。スターをつけさせていただいている hfu です。いつも有益な記事、ありがとうございます。 データ元を明らかにされていない時点でも、いくつか貴重な情報があり、大変参考になりました。また、今回さらに踏み込んで情報を開示いただき、ありがたかったです。これからも、可能な範囲でいろいろエントリいただけるとうれしいです。 これから、何か教えていただきたいことが発生した場合には、コメント欄あるいはトラックバックなど利用して、シグナルを送るようにしたいと思います。 「マルチポリゴン1レコードで作られている海岸線データ」というようなデータが出現した背景
libsvm には、"-b 1" オプションという、確率推定機能があります。これを試してみました。学習には libsvm 付属のコマンド svm-train を使い、分類は自作の libsvm.rb を通じて JRuby 上で行えるようにしました。 英単語とドイツ語単語を分類するという例題に取り組んでみた結果、良好な分類性能と、意味ありげな推定確率が得られました。 libsvm の確率推定機能 libsvm のコマンド svm-train 及び svm-predict には、以下のような確率推定オプションがあります。 -b probability_estimates: whether to train a SVC or SVR model for probability estimates, 0 or 1 (default 0)この確率推定が何を意味しているいるのかを体感するために、適当な
JRubyが遅いという話は過去のものになるかもしれません。 http://recompile.net/2007/10/trunkjruby.html を拝見して、改めて私の用途についてベンチマークを取り直してみました。 ベンチマークの内容は、 99819 レコードある Shapefile ファイルを読み、読んだレコードをすべて別の Shapefile に書き出す。 というもので require 'geotools' src = '(...)/transl_1_1.shp' start_time = Time.now Geo::Writer.open('trans.shp') do |w| Geo::Reader.foreach(src) do |g, a| w.write(g, a) end end print "#{Time.now - start_time}s\n" というものです。g
geotools.rb を実装しました。 JRuby + Geotools と CRuby + Rjb + Geotools 用に作成した FeatureReader / Writer http://d.hatena.ne.jp/hfu/20070910/1189455735 Rjbを利用するか、JRubyを利用するかを、環境に依存した特殊な処理と考えることで、差の部分をアプリケーションのメインの処理から分離し、隔離する。 http://arton.no-ip.info/diary/20070911.html#p02 for CRuby + JRuby な Geotools 利用モジュールを作ってみたいと思いました。geotools.rb。 http://d.hatena.ne.jp/hfu/20070911/1189572966 ということで、geotools.rb を作成してみました。
このページを最初にブックマークしてみませんか?
『Relevant, Timely, and Accurate』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く