古都の片隅で… このページをアンテナに追加 RSSフィード

2016-04-26-Tue

[]GPSPruneで背景地図地理院地図を表示させる

GPSPruneJavaで動くため、WindowsMacLinuxなど、マルチプラットフォームで利用できるGPSログユーティリティソフトウェアです。

ログ可視化や、exiftoolと合わせて使うことによるデジタル写真へのジオタグの付加などが出来ます。

このソフトウェアは背景に地図を表示することが出来ます。

「ビュー」→「地図を表示」

この地図は、タイルマップサービスを利用することで自由に変更することが出来ます。

「設定」→「背景地図」→「新しく追加」

ここでは地理院地図の標準地図(いわゆる地形図+ズームアップすると基盤地図情報)を表示させる設定を示します。

ソース名前」: 任意

URL of first layer」: http://cyberjapandata.gsi.go.jp/xyz/std/

※「png」にチェックが付いていることを確認してください。

「Optional URL of second layer」: 空欄のまま

「最大ズームレベル」: 18(デフォルトのまま)

これで背景に地理院地図の標準地図を表示することが出来ます。

2015-12-01-Tue

[]FOSS4G 2015 Osakaハンズオンの資料

※このエントリーFOSS4G Advent Calendar 2015 二個目エントリーとして書いております

ハンズオンの資料を公開いたしました。詳しくは下記をどうぞ。

http://www.slideshare.net/sayno/foss4g-2015-osaka

今回は他のWebサービスも使ってみました。

Speaker Deckはこちら。

https://speakerdeck.com/sayno/foss4g-2015-osakahanzuonzi-liao

GitHubでも生ファイルを公開しています

https://github.com/Say-no/FOSS4G2015Osaka_handson/blob/master/FOSS4G_Osaka_2015_seino.pdf

それにしても、QiitaってGitHubアカウントログイン出来るのかと思ったら、改めてそこから新規登録させるのね。なんだかなぁ…。

2013-09-21-Sat

[][]Ubuntu13.04 AMD64におけるGRASS GIS 7のコンパイル


CFLAGS="-g -Wall" CXXFLAGS="-g -Wall" ./configure --with-gdal --with-proj --with-glw --with-nls --enable-debug --enable-64bit --with-libs=/usr/lib --with-cxx --with-readline --with-freetype --with-freetype-includes=/usr/include/freetype2/ --with-pthread --enable-largefile --with-proj-share=/usr/share/proj/ --with-geos --with-cairo --with-tcltk-includes=/usr/include/tcl8.4/ --with-tcltk-libs=/usr/lib/ --with-wxwidgets --with-postgres=no --with-sqlite=yes --with-python=/usr/bin/python2.7-config --with-opengl-libs=/usr/include/GL --with-ffmpeg=yes --with-ffmpeg-includes="/usr/include/libavcodec /usr/include/libavformat /usr/include/libswscale" --with-openmp=yes --with-opencl=yes

GRASS is now configured for: x86_64-unknown-linux-gnu

Source directory: ./grass_trunk

Build directory: ./grass_trunk

Installation directory: ${prefix}/grass-7.0.svn

Startup script in directory:${exec_prefix}/bin

C compiler: gcc -g -Wall

C++ compiler: c++ -g -Wall

Building shared libraries: yes

OpenGL platform: X11

MacOSX application: no

MacOSX architectures:

MacOSX SDK:

BLAS support: no

C++ support: yes

Cairo support: yes

DWG support: no

FFMPEG support: yes

FFTW support: yes

FreeType support: yes

GDAL support: yes

GEOS support: yes

LAPACK support: no

Large File support (LFS): yes

libLAS support: no

MySQL support: no

NetCDF support: no

NLS support: yes

ODBC support: no

OGR support: yes

OpenCL support: yes

OpenGL support: yes

OpenMP support: yes

PNG support: yes

POSIX thread support: yes

PostgreSQL support: no

Readline support: yes

Regex support: yes

SQLite support: yes

TIFF support: yes

wxWidgets support: yes

X11 support: yes

2013-05-17-Fri

[]proj.4を使って、緯度経度の値をUTM座標の座標値に変換する方法

proj +proj=utm +zone=53 +ellps=WGS84+init=EPSG:3099 -f %.3f

意味は、最初の「+proj=」の後に、utmと入れることで、utm座標系の値が欲しい、と宣言する。

次の「+zone=」がUTMゾーン数字を入れるところ。

次の「+ellps=」が準拠楕円体を指定するところ。

「+init=EPSG:」の後にEPSGコードを入れればよかった(なーんだ)。

「EPSG:3099」は「JGD2000 / UTM zone 53N」という意味

最後の-fオプション小数点以下の桁数指定で、%.3fとすることで小数点以下3桁になる。

ここで一旦リターンキーを押す。

すると入力待ち状態になるので、

135.000 40.000

とか入力してエンターキーを押すと、

500000.000	4427757.219

こんな感じで値が出てくる。

続いて入力待ちになっているので、また緯度経度の値を入力するとまた計算結果を返してくれる。

終了したいときはControl+Cで終了した。

2012-12-20-Thu

[][]OSGeo/FOSS4G周辺における「自由」「オープン」「Free」

※このエントリーFOSS4G Advent Calendar 2012エントリーとして書いております。他のエントリーもとても面白く、勉強になりますので、ぜひご一読下さい。


はじめに

本当は何か具体的なツールの使い方などを紹介した方がいいのかもしれませんが、

最近OSGeo財団日本支部関係やFOSS4G関係イベントなどで言葉曖昧なまま使われている例や間違った意味で使われている例を最近よく目にし、

発信する側が言葉を間違って使っているのはいかがなものか、と思いましたので

ちょっと堅いですがこんなエントリーにしてみました。

決してこんなイベントをやるからこういうネタで書くわけじゃありませんよ(ステマ)。

あと、今週はぶっ飛んだ面白いエントリーが多かったのに、ここに来てこんな堅い話になって水を差すことになってしまって申し訳ございません…。


「OSGeo」および「FOSS4G」について

「OSGeo」とはOSGeo財団(The Open Source Geospatial Foundation)のことで、

「高品質オープンソース地理空間ソフトウェアの支援と構築のために設立されました。この財団目的は、コミュニティーが先導して、オープンソースプロジェクトの利用と開発を促進することです。」

(http://www.osgeo.jp/ より引用)

「FOSS4G」とは「Free Open Source Software for(4) Geospatial」の略で、

英語としては不自然表現だと指摘されることもありますが、

一応、「自由でオープンGISソフトウェア」と言う意味です。

ただし、この言葉には、OSGeo財団主催するカンファレンス/イベントタイトルとしても用いられることがあります

ここでややこしいのは、FOSS4Gのカバー範囲はどこまでか、という事です。

僕自身は狭義にはOSGeo財団が開発を支援しているプロジェクト成果物に対する名称だと考えております

現在OSGeo財団が支援しているプロジェクトは、財団の公式Webサイト http://www.osgeo.org/ ここの右側のペインにリストが挙げられています

著名なソフトウェアはこちらに沢山挙げられていますが、

自由でオープンGISソフトウェアはこれ以外にも沢山あります

例えば有名なところではSAGA GISGMTといったソフトウェアはOSGeo財団の支援は受けておりません。

これらもライセンスGPLなどを採用しており、立派な自由でオープンソフトウェアなのですが、FOSS4Gと言えるかというと微妙です。

単純に英単語意味としては確かにFOSS4Gなのですが…。

なお、ドイツではFOSSGIS e.V.という非営利社団法人があり、OSGeo財団の支援を受けていない自由でオープンGISソフトウェアや、

更にはオープンなジオデータをも扱う、「FOSSGIS」というカンファレンスを開いています

http://www.fossgis.de/

そして、このFOSSGIS e.V.が設置している http://freegis.org/ というサイトには、OSGeo財団の支援を受けていないGISソフトウェアが数多く登録されています

これらを包括した呼び方は現状では定義されていないの状態です。


「FOSS」って?

ところで、そもそも「FOSS4G」の「FOSS」の部分についても実は説明が必要なことが多いようです。

なお、「FOSS」という言葉は、近年は「Free/Libre Open Source Software: FLOSS」と呼ばれることも多くなってきています

本当はこれらの言葉の背後には長い歴史があり、

こんなざっくり書いたらいろんな人から怒られてしまうのですが、

とりあえずさらっと書きたいと思います

詳しい説明はWikipediaなどでも解説されていますから

踏み込んで勉強したい方はそうした関連ドキュメントに目を通して下さい。


「Free Software」と「Open Source Software

まず、「Free Software」と言う言葉と「Open Source Software」と言う言葉ですが、

厳密にはイコール概念ではありません。

歴史的には「Free Software」という言葉が先に存在し、その言葉定義に不満を持った人たちが、それを避けて新しい概念として立てたのが「Open Source Software」という言葉です。


「Free Software

「Free Software」という言葉フリーソフトウェア財団(Free Software Foundation: FSF)が提唱する言葉で、厳密な提議があります

そして、この邦訳としては「自由なソフトウェア」と呼ぶことを、この言葉定義したRichard Stallman氏が推奨しています

http://ja.wikipedia.org/wiki/%E3%83%95%E3%83%AA%E3%83%BC%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2#cite_note-1

ここでの「Free」は決して「無料」のことを指すのでは無く、「自由」を意味しています

ですので、「有料な『Free Software』」というもの存在すること自体は可能です(実質的意味があるかは別問題です)。


Open Source Software

一方、「Open Source Software」については「Free Software」に不満があった人々によって定義された部分もある言葉なので、その性質には若干の相違があります

例えばFree Softwareではソフトウェアソースを改変したものを再配布する場合には、利用者が改変部分を入手できるようにする必要があります

しかし、オープンソース場合は、その義務が伴わないものも認められています

ただ、方向性として、自由に使えるソフトウェアにしたい、という思いは両者とも同じなので、このように併記して用いられることが多いのです。

詳しくは関連ドキュメントを参照して下さい。


「自由≠無料」、「Free」「フリー」って?

日本ではよく、「無料ソフトウェア」のことを指して「フリーソフト」という言葉が用いられることがあります

しかしこの「フリーソフト」という言葉は非常に曖昧です。

また「フリーウェア」という言葉もあります。こちらは、ほとんど自由でオープンという点を強調せず、

無料である点のみを強調している場合が多いように見受けられます

個人的な意見としては、きちんと「フリーソフトウェア」なら「フリーソフトウェア」もしくは「自由なソフトウェア」と言うべきで、

無料ソフトウェアに対しては「無料ソフトウェア」や「フリーウェア」などの言葉を使うべきだと思います

フリー」という言葉も安易に使うのではなく、できるだけきちんと文脈に即して「自由」あるいは「無料」と言う言葉を使って表現すべきでしょう。

無料でも自由ではないソフトウェアは沢山あります。多くの場合ソースコードは入手できず、実行形式のファイル(バイナリファイル)のみが提供されています

例えば有名なところでは、Adobe Readerや、GISソフトウェアではGoogleEarthやカシミール3Dなどです。


なぜ「自由」が大事なのか?

自由の担保は非常に重要です。

「タダより高いものはない」とはよく言いますが、

無料からといってそれに頼っていると、ある日突然それが使えなくなったりした際に、困るのはその利用者です。

特定の企業や個人の思惑に左右されることは避けられません。

仮に、過去ダウンロードしたものがあったとしても、多くの無料だが自由ではないソフトウェア場合

利用規約でそうしたファイルの再配布は認めてられていなかったりします

こうなるともうお手上げです。

僕が自由でオープンソフトウェアをことさら強調するのは永続性の確保や特定の企業などによる囲い込み(ベンダーロックイン)を避けることなどを重視しているからです。

また、自分が身を置く学問世界においては特に研究の成果は広く人類還元されるべきであり、

そのためには誰もがアクセスできる方法研究が行われることが望ましいと考えています

分析をする際に用いられるソフトウェアも同様でしょう。

また、研究世界というのはその世界カッティングエッジであるため、細かく自分の要求に応じて処理が修正できる必要があります

そのためにも処理がブラックボックス化されたソフトウェアは具合が悪いのです。


みんながハッピー未来に向けて

無料も悪いことではないのですが、

自由でオープンソフトウェアを積極的に使っていきましょう。

その先にはみんながハッピーになれる未来があると思います

またそうしたソフトウェアの開発コミュニティにも積極的に参加して、

自分達が使っているソフトウェア自分達で育てていきましょう。

タダ乗り(フリーライド)することも悪いことではありませんが、

与えられるのを待ち、満足いかなかったからといって不満を述べているだけでは、

いつまで経ってもそのソフトウェアが良くなることはありません。

せっかく自由でオープンなのです。

みんなで良くしていく事で、自分も、また自分の後に続く人たちにも幸せが訪れるようになるといいですよね!


Happy Hacking!!


明日nao.tさんです。


※本当はライセンスのことも書こうと思っていたのですが、量が多くなってきたので、エントリーを分けて議論したいと思います

2012-09-07-Fri

[]GRASS-GIS開発版をUbuntu 12.04 AMD64コンパイル

CFLAGS="-g" ./configure --enable-debug --enable-64bit --with-libs=/usr/lib --with-cxx --with-readline --with-freetype=yes --with-freetype-includes="/usr/include/freetype2/" --enable-largefile=yes --with-proj-share=/usr/share/proj/ --with-geos --with-cairo --with-tcltk-includes=/usr/include/tcl8.4/ --with-tcltk-libs=/usr/lib/ --with-wxwidgets --with-postgres=no --with-sqlite=yes --with-python=/usr/bin/python2.7-config --with-opengl-libs=/usr/include/GL --with-ffmpeg=yes --with-ffmpeg-includes="/usr/include/libavcodec /usr/include/libavformat /usr/include/libswscale" --with-openmp=yes

の結果が、

GRASS is now configured for:  x86_64-unknown-linux-gnu

  Source directory:            /home/seino/grass7/grass_trunk
  Build directory:             /home/seino/grass7/grass_trunk
  Installation directory:      ${prefix}/grass-7.0.svn
  Startup script in directory: ${exec_prefix}/bin
  C compiler:                  gcc -g 
  C++ compiler:                c++ -g -O2
  Building shared libraries:   yes
  OpenGL platform:             X11

  MacOSX application:         no
  MacOSX architectures:       
  MacOSX SDK:                 

  Tcl/Tk NVIZ:                yes

  BLAS support:               no
  C++ support:                yes
  Cairo support:              yes
  DWG support:                no
  FFMPEG support:             yes
  FFTW support:               yes
  FreeType support:           yes
  GDAL support:               yes
  NETCDF support:             no
  GEOS support:               yes
  LAPACK support:             no
  Large File support (LFS):   yes
  libLAS support:             no
  MySQL support:              no
  NLS support:                no
  ODBC support:               no
  OGR support:                yes
  OpenGL support:             yes
  OpenMP support:             yes
  PNG support:                yes
  POSIX thread support:       no
  PostgreSQL support:         no
  Readline support:           yes
  Regex support:              yes
  SQLite support:             yes
  TIFF support:               yes
  Tcl/Tk support:             yes
  wxWidgets support:          yes
  X11 support:                yes

2012-08-26-Sun

[]GRASS-GISでr.mapcalcを使ってベースマップから計算しない範囲を除く方法

r.mapcalc "新しく作る地図名 =if(isnull(マスクしたいラスタ地図マスク以外の範囲。null値の部分。),標高値を引き継ぎたいベースマップ,null()←マスク部分をnull値にする)"

r.mapcalc 'new = if(isnull(null_source_map),base_DEM_map,null())'

2012-05-09-Wed

[]Garmin eTrex20Jの各GPXファイルの内容について

先程、職場が購入したeTrex20Jを少し触れたので、その時に気がついたことのメモ

※ただし、GPSConciergeさんから購入しており、おまけとしてOpenStreetMap地図が入った状態のMicroSDカードを挿しておいていただいたので、MicroSDの方のフォルダ構造は他の販売店から購入したものとは異なっている可能性もある。

eTrex20Jは、USBマスストレージモードUSBPC接続すると、本体内蔵メモリが2GBで「GARMIN」というドライブネームで見える。一方、MicroSDカードの方は、別のドライブとしてリムーバルディスクとして見える。

まずGARMINドライブの方は直下に「Garmin」というフォルダがあり、その下にさらに多数のファイルフォルダがある。その中の「GPX」というフォルダ内に「Current」というフォルダと「ポイント_12-05-09.gpx」「Garmin Waypoints.gpx」「BirdsEye Demo.gpx」というファイルがある(「BirdsEye Demo.gpx」はデモデータなので無視)。「Current」フォルダ内には「Current.gpx」があり、これが現在の軌跡が保存されている。

「ポイント_12-05-09.gpx」と「Garmin Waypoints.gpx」は、ウェイポイントけが保存されているGPXファイルだが、前者がその時取得したウェイポイントを保存しているものであり、後者Garmin本社ヨーロッパ支店(イギリス)、アジア支店(台湾)の位置を示すウェイポイントが格納されていた。

MicroSDの方は、直下に「Garminフォルダがあり、その中の「TRK」フォルダ内に「20120509.gpx」というファイルが生成されており、これが本日とったログの全てのトラックポイントが含まれている。トラック同士はGPXの規格によって、<trk></trk>タグの間に挟まれた範囲が一つのトラックを示す。

「軌跡管理」のメニューから、「現在の軌跡消去」をすると、現在画面で進行中の軌跡は消去され、リセットされる。ただし、これを行うことで、MicroSDの方のGPXファイル内ではトラックが分けられて、<trk>タグが付与され、<name>タグ内にACTIVE LOGxxxxというような名前が付けられる。


eTrex20J(及びこのシリーズ)は、単一のGPXファイル内にトラックポイントとウェイポイントを同時に持たなくなったようだ。それぞれ別のGPXファイルとなっている。

軌跡の管理としては、MicroSDの方には日付単位でその日のすべての軌跡が、タグ付けによって区別されて保存されている。また、最新の軌跡についてのみ、本体の記録領域の方に保存される。

ウェイポイントについては、基本的に本体側の記憶領域にのみ保存されるようだ。

2012-02-10-Fri

[][]GRASS-GIS 開発版、バージョン7のコンパイル その3

id:Say-no:20120130#1327939635id:Say-no:20120130:1327939635 の続き

メモ

CFLAGS="-O3 -Wall -Werror-implicit-function-declaration -fno-common -fopenmp" LDFLAGS="-lgomp" ./configure --with-tcltk-includes="/usr/include/tcl8.5" --with-freetype-includes="/usr/include/freetype2" --with-openmp="yes" --with-wxwidgets="yes" --with-X11="yes" --enable-debug --enable-64bit --with-libs=/usr/lib --with-cxx --with-readline --enable-largefile=yes --with-proj-share=/usr/share/proj/ --with-geos=/usr/local/bin/geos-config --with-cairo --with-postgres=yes --with-sqlite=yes --with-python=yes --with-opengl-libs=/usr/include/GL --with-ffmpeg=yes --with-ffmpeg-includes="/usr/include/libavcodec /usr/include/libavformat /usr/include/libswscale"

で、

checking whether to use PostgreSQL... yes
checking for location of PostgreSQL includes... 
checking for libpq-fe.h... no
configure: error: *** Unable to locate PostgreSQL includes.

って言われる。

2012-01-31-Tue

[][]GRASS-GIS 開発版、バージョン7のコンパイル その2

昨日の記事id:Say-no:20120130#1327939635の続き。

昨日の段階のソースで引き続きテスト

今日トライでは、以下のようにやったところconfigureが通った。

昨日の宣言通り、ようやくconfigure結果でopenmp=yesとなった。単純にオプションに--with-openmp="yes"をつければ良かったらしい…orz

 CFLAGS="-O3 -Wall -Werror-implicit-function-declaration -fno-common -fopenmp" LDFLAGS="-lgomp" ./configure --with-tcltk-includes="/usr/include/tcl8.5" --with-freetype-includes="/usr/include/freetype2" --with-openmp="yes"

その結果、

GRASS is now configured for:  x86_64-unknown-linux-gnu

  Source directory:            /usr/local/src/grass_trunk
  Build directory:             /usr/local/src/grass_trunk
  Installation directory:      ${prefix}/grass-7.0.svn
  Startup script in directory: ${exec_prefix}/bin
  C compiler:                  gcc -O3 -Wall -Werror-implicit-function-declaration -fno-common -fopenmp 
  C++ compiler:                c++ -g -O2
  Building shared libraries:   yes
  OpenGL platform:             X11

  MacOSX application:         no
  MacOSX architectures:       
  MacOSX SDK:                 

  Tcl/Tk NVIZ:                yes

  BLAS support:               no
  C++ support:                yes
  Cairo support:              yes
  DWG support:                no
  FFMPEG support:             no
  FFTW support:               yes
  FreeType support:           yes
  GDAL support:               yes
  GEOS support:               no
  JPEG support:               yes
  LAPACK support:             no
  Large File support (LFS):   yes
  libLAS support:             no
  MySQL support:              no
  NLS support:                no
  ODBC support:               no
  OGR support:                yes
  OpenGL support:             yes
  OpenMP support:             yes
  PNG support:                yes
  POSIX thread support:       no
  PostgreSQL support:         no
  Readline support:           no
  Regex support:              yes
  SQLite support:             no
  TIFF support:               yes
  Tcl/Tk support:             yes
  wxWidgets support:          no
  X11 support:                no

こんな感じになった。

どうも、configureのオプションに--with-○○="yes"としてあげればいいみたい。

というわけで、環境は整えてないなぁ、と思いつつ、ダメもとで--with-wxwidgets="yes"とやってみると案の定怒られて、

checking for wx-config... no
configure: error: *** couldn't find wx-config

  	  	  wxWidgets must be installed on your system.
  
                  Please check that wx-config is in path, the directory
                  where wxWidgets libraries are installed (returned by
                  'wx-config --libs' or 'wx-config --static --libs' command)
                  is in LD_LIBRARY_PATH or equivalent variable and
                  wxWidgets version is 2.8.1 or above.

こんな感じのエラーが…。

明日以降、このへんをもう少し調べていきたい。


追記

libwxgtk2.8-dev及びその依存関係パッケージを入れたら、

wxWidgets support:          yes

になった。なーんだ。

明日はいよいよコンパイルかな?