GIS奮闘記

現役GISエンジニアの技術紹介ブログ。主にPythonを使用。

PythonとJSMで東証一部上場企業を可視化してみる

ものすごく久しぶりのブログ更新になります。さぼり気味で元々しょぼい腕前がさらに錆びついた気が・・・今後はまた定期的に更新しようと思いますので、どうぞよろしくお願いします。さて、今回は「PythonとJSMで東証一部上場企業を可視化してみる」です。た…

ArcPyレシピ集④ ~フィーチャクラスの座標系を取得~

さて、また間が空いてしまいましたが、今回もArcPyレシピを書いてみたいと思います。テーマは「フィーチャクラスの座標系の取得です」。例えば、GDBに複数のフィーチャクラスが入っている際、座標系が異なるフィーチャクラスが入ってしまっていた、というご…

ArcPyレシピ集③ ~サブタイプの取得方法~

さて、ブログの更新が滞っていましたが再開させようと思います。今回はArcPyでサブタイプの取得方法を紹介したいと思います。 サブタイプとは?! そもそもサブタイプとは何なのでしょうか?サブタイプは、フィーチャクラスのデータを分類する場合に使用しま…

ArcPyレシピ集② ~ワークスペースのフィーチャクラス名とジオメトリタイプの取得方法~

さて、GWも終わり憂鬱な気分となっておりますが、本日もArcPyレシピを書いてみたいと思います。 本日のお題 ワークスペースのフィーチャクラス名とジオメトリタイプの取得方法 おそらく業務で使用するワークスペース(FGDBなど)には多数のフィーチャクラス…

ArcPyレシピ集① ~フィーチャクラスのカラム名の取得方法~

さて、本日から簡単なArcPyのレシピ集を書いてみたいと思います。もっといい方法があるよ!という方はご連絡いただけると助かりますm(_ _)m 本日のお題 フィーチャクラスのカラム名の取得方法 フィーチャクラスを扱うにおいて、カラム名をとってきたいことは…

ArcPyでオープンストリートマップのデータ(.osm)をShapeに変換してみた

さて、本日はArcPyでオープンストリートマップのデータ(.osm)をShapeに変換してみようと思います。最近はまっているオープンストリートマップですが、出力できるデータ形式が.osm(実質xml)というものなので、なんだかなぁという感じです。とりあえずShapeで…

OpenStreetMapを使ってみよう!

さて本日はマニアックなArcPyのプログラムからは離れてOpenStreetMapを紹介しようと思います。実は私も最近知りました。GISに携わる者としてこんな面白いものを知らなかったのは実に恥ずかしい。。。 OpenStreetMapとは 「OpenStreetMap(OSM)は、道路地図な…

ArcPyで壊れたフィーチャクラスを抽出する方法

さて、本日は「ArcPyで壊れたフィーチャクラスを抽出する方法」です。フィーチャクラスが壊れるって何?!と思う方もいらっしゃるかと思いますが、フィーチャクラスは壊れるんです。本当に貧弱です。 確認方法 属性テーブルのヘッダカラムをダブルクリックし…

【PythonとGIS】ArcPyで頂点の間引き処理を進化させてみた

さて、本日は頂点の間引き処理を行ってみたいと思います。ArcMapの頂点の間引きというジオプロセシングツールを使えばそれを実現することが可能です。頂点の間引き (Generalize)—ヘルプ | ArcGIS for Desktop ただ、以下のような問題もあります。 Standardラ…

【PythonとGIS】ArcPyでラインの端点の角度を取得する

さて、本日はラインの端点の角度を取得しようと思います。ラインの端点にはシンボルを置くことが多いので、端点の角度を取得して、そこにのっかるポイントに角度を与える場合などに使えるかと思います。 環境 Windows7 64bit ArcGIS10.2 Python2.7.3 事前準…

【PythonとGIS】ArcPyでライン接合を行ってみた ~Advancedライセンス?!だが断る!~

さて、本日はArcPyでライン接合を行ってみようと思います。背景などでけっこうラインがぶちぶち切れてしまっていることが多いので、この機能があればラインのフィーチャ数を減らすことができますね。Advancedライセンスがあれば、ArcMapで実行できるのですが…

ArcPyを使用してラインの頂点数を取得する

さて、本日はArcPyを使用してラインの頂点数を取得してみようと思います。頂点数が多いとパフォーマンスにも影響が出てしまうため、余分な頂点数がありそうなラインを抽出するのに役立つかと思います。 実行環境 Windows7 64bit ArcGIS10.2 Python2.7 事前準…

Pythonで自分だけの世界地図を作ってみる ~オープンデータを自分の欲しい形にしてみよう~

本日は世界地図を作ってみようと思います。オープンデータ関連で検索すれば世界地図がダウンロードできるサイトがいくつか検索できます。ただし、すべて海外のサイトのため、表記が英語になっていて非常に見づらいです。なので、今回は日本人向けの世界地図…

【PythonとGIS】GIS的視点で高校サッカーを分析してみる

さて、とうとうサッカーネタに手を出してみようと思います。最初は高校サッカーにしてみました。「どの県が最強なのか」というのを分析・視覚化してみようと思います。※ソースと作成したデータはGitHubで公開しています。https://github.com/sanvarie/Minnan…

PythonでESRIの日本地図(全国市区町村界データ)を加工してみる ~オープンデータを自分の欲しい形にしてみよう~

本日は当ブログでもよく使用しているESRIさんの日本地図を加工してみようと思います。このデータは全国の市区町村ごとのポリゴンデータなのですが、県ごとのポリゴンが欲しいという方もいるかと思います。単純に県ごとにするだけなら簡単なのですが、人口や…

【PythonとGIS】ESRIデータコレクションを分析する ~ArcPyを使用して詳細地図の秘密に迫る~

さて、本日はESRIデータコレクションを分析してみようと思います。「ESRIデータコレクション」とはESRIさんが販売している背景地図のことです。以前、ESRIの方とお話しした際に「データコレクションは涙ぐましい努力をして少しでも速度が出るようにしていま…

ArcPyを使用してフィーチャクラスの情報をCSV出力する

さて、本日は「ArcPyを使用してフィーチャクラスの情報をCSV出力する」です。実際に業務では数十個のフィーチャクラスがあり、それぞれにサブタイプなどを設定していたりします。例えば、サブタイプごとのアイテム数を抽出したい場合、一つ一つ確認していく…

【PythonとSQL】Zmap-TOWNⅡをファイルジオデータベースに変換して住所データ(地番戸番)を抜き出す方法 ~やっぱり便利なPandas~

さて、本日はZmap-TOWNⅡから住所データ(地番戸番)を抜き出してみようと思います。大変便利なZmap-TOWNⅡですが、これの住所一覧が欲しいなぁと思ってもゼンリンさんはそんなデータは用意してくれていませんね。なら自分で作ってしまいましょう! Zmap-TOWNⅡを…

ArcGISコミュニティの発足 ~Q&Aや情報交換用のFacebookグループ~

このたびArcGISコミュニティを発足することになりました。 ArcGISは便利なエンジンですが、世に出回る情報量の少なさが玉に瑕ですよね(あったとしても英語ばかりといったことも多々)。ですので、困った時に質問や情報収集が出来るコミュニティの存在が必要…

【GISとPython】pandasで気象庁の震度データベースをスクレイピングして震源をマップにプロットする

さて、本日はpandasでHTMLの表をスクレイピングしてみようと思います。スクレイピングだったらBeautifulSoupやlxmlなどが有名ですが、HTMLの表をスクレイピングするのは割と面倒くさい作業です。「気象庁の震度データベース」というちょうどいいサンプルがあ…

【ArcMapとArcpy】オープンデータを使って自分だけの地図を作ろう! ~阪神・淡路大震災編~

さて、本日は神戸市のオープンデータを利用してみようと思います。阪神・淡路大震災「1.17の記録」に阪神・淡路大震災の記録写真が公開されています。前回行ったようにこの写真にジオタグを追加して、その緯度経度にポイントを配置してみます。 データのダウ…

Pythonで画像ファイルにジオタグ(geotag)を追加しよう!

さて、本日は「Pythonで画像ファイルにジオタグ(geotag)を追加しよう!」です。GPSを搭載したスマートフォンなどは、撮影時にその場所の緯度経度情報を写真データに埋め込むことが可能で、この位置情報を「ジオタグ」と呼びます。このジオタグですが、注意が…

【ArcMapとArcpy】オープンデータを使って自分だけの地図を作ろう! ~factbook編~

今回はfactbookを使用してみようと思います。factbookとは世界各国に関する情報を年鑑形式でまとめたアメリカ合衆国中央情報局 (CIA) の年次刊行物のことです。こんな便利なものが公開されているのですね。 ダウンロード 以下サイトからダウンロードします。…

PythonでArcObjectsを使ってみよう!

本日はPythonでのArcobjectsの使用方法を書いてみたいと思います。PythonだとArcpyしか使えず、ちょっと難しいことをやろうと思うと途端にその貧弱さが露呈してしまいましたが、ArcObjectsを使えば大丈夫?!なはずです。それじゃあ最初から.NETで開発しろよ…

【ArcMapとArcpy】オープンデータを使って自分だけの地図を作ろう! ~世界の空港編~

今回はオープンデータについてです。オープンデータとは誰もが自由に利用でき、再利用や再配布が許可されているデータのことを指します。つまり、「著作権フリーで自由に利用可能」ということです。素晴らしいですね!オープンデータをうまく活用すれば地図…

【Pythonで分析】ArcpyとPandasを使用して将来推計人口を視覚化する

本日は将来推計人口について考えてみます。将来推計人口とは、国連や各国政府が推計した将来の人口のことです。日本では、直近の国勢調査による人口数を基に、出生率や死亡率などを考慮して推計し、国立社会保障・人口問題研究所がほぼ5年ごとに作成、公表し…

Pythonで基盤地図情報の数値標高モデルを解析してGeoTiffに変換する(横須賀編) ~Numpy、GDAL、Arcpyを駆使して横須賀の標高(地盤高)を視覚化する~

今回は数値標高モデル(DEM)の解析を行ってみたいと思います。数値標高モデル(DEM)とは地形のデジタル表現のことで我らが国土地理院が公開しています。参考までにですが、これは火星のティトニウム・カズマの数値標高モデル(DEM)を三次元表示した画像です。 …

Arcpyを使用してJ-SHISの表層地盤データを分析してみよう(横須賀編) ~ArcpyでShape読込、Shape出力、属性検索、空間検索、フィールド演算~

本日はJ-SHISと地盤についてです。ご存じの方も多いかも知れませんが、J-SHISとは「地震防災に資することを目的に、日本全国の「地震ハザードの共通情報 基盤」として活用されることを目指して作られたサービス」です。ここから全国の地盤データをダウンロー…

Pythonでのモジュールとパッケージの作成

本日は「Pythonでのモジュールとパッケージの作成」です。簡単なスクリプトなら一つのファイルで十分なのですが、ある程度の規模になるとクラスを分けたくなりますよね。そこでパッケージとモジュールです。今回はパッケージとモジュールの作り方について書…

Pythonで緯度経度を平面直角座標(XY座標)に変換する

明けましておめでとうございます。新年最初の投稿は「Pythonで緯度経度を平面直角座標(XY座標)に変換する」です。Pythonでジオコーディングをやってみる - GIS奮闘記で取得した緯度経度を平面直角座標に変換したいと思います。 pyprojのインストール pypro…

投影法、座標系、測地系、それぞれの違いについて

今更ですが、GISの基本的な概念である「投影法、座標系、測地法」について書いてみようと思います。GISに関わっているとこれらの用語には必ず出くわすと思います。しかし、それぞれの違いについてよくわからない、という方も多いのではないでしょうか?例え…

GDALでGeoTiffを作ってみよう!

さて、本日は「GDALでGeoTiffを作ってみよう!」です。 GDALとはラスターデータのメタデータの検索や、データフォーマットの変換などが可能になる便利なソフトです。 何を言っているかわからないって?!とりあえずGDALっていうソフトを使うとGeoTiffが作れ…

【Pythonで画像処理】Pillowを使用してシンボル一覧を作成する

本日は「【Pythonで画像処理】Pillowを使用してシンボル一覧を作成する」です。Pillowとは、Pythonの画像処理ライブラリで、Python Imaging Library (PIL)のforkプロジェクトです。PILは開発が停滞しPython2.7までの対応にとどまっていますが、PillowはPytho…

Arcpyでフィーチャクラスの座標系を一括で変換する

さて、本日は「Arcpyでフィーチャクラスの座標系を一括で変換する」です。久しぶりにArcGISネタですね。なんとArcMap上ではフィーチャクラスごとにしか座標系の定義をすることができないので、フィーチャクラスが大量に存在している場合、座標系の変換はとて…

PythonでRSSを使用してアンテナサイトを作る

本日はアンテナサイトを作ってみます。アンテナサイトを作るにはRSSを利用します。RSS - Wikipedia こんなものを用意してくれているなんて便利な世の中ですね。アンテナサイトといえば2ちゃんねるのまとめを対象としたものが多い気がしますが、本ブログはGI…

PythonでTwitterデータを取得しマップ上で表現する

さて、本日は「PythonでTwitterデータを取得しマップ上で表現する」です。つまり、ツイート情報から緯度経度を取得し、その緯度経度ごとにポイントを配置してみようと思います。手順は以下を参照してください。 Twitter APIに接続するためのアカウント情報取…

PythonでMongoDBを弄ってみる

今回はMongoDBについてです。MongoDBって最近よく聞くけど一体何なの?!という方もまだ多いかと思います。MongoDBは,いわゆる「ビッグデータ」を処理可能なパフォーマンスをもつNoSQLの性能と,RDBMSのもつ豊富な機能をバランスよく取り込んだソフトウェア…

Pythonでスクレイピングした結果をGoogleMapに反映してみた

本日はPythonでスクレイピングした結果をGoogleMapに反映してみました。具体的に言いますと、スクレイピングした情報(緯度経度)の位置にGoogleMap上でマーカーを作成します。スクレイピングについては以下ご参照ください。 ウェブスクレイピング - Wikiped…

GoogleMapsAPIを使ってみよう

本日はGoogleMapsAPIを使ってみたいと思います。 GoogleMapsAPIとは簡単に言うと「GoogleMapを自分のサイトでも使ってみたい」という方向けにGoogleが無償公開している便利なものです。飲食店のサイトなんかによくあるあれですね。さて、前回はジオコーディ…

Pythonでジオコーディングをやってみる

本日はPythonでジオコーディングをやってみたいと思います。ジオコーディングって何?という方は以下をご参照ください。 「ジオコーディング(英語: geocoding)は、各種情報に対して、関連する地理座標(典型的には緯度・経度)を付加すること、およびこれ…

PyPyを試してみる

今回はPyPyについてです。Pythonのいいところは手軽さだったり、ライブラリの豊富さだったりあげたらきりがありません。しかし、Pythonには遅いという欠点があります。ここはスクリプトということで致し方ないところはありますが、GISでも大量のデータを扱う…

PythonスクリプトのEXE化

さて、前回はWxpythonのインストールについてでしたが、今回は作ったスクリプトをEXEに変換する方法を書きたいと思います。これでArcpyをGUIで動かすことができますね。変換にはpy2exeというライブラリを使用します。■py2exeのダウンロード 下記リンクよりpy…

ArcpyをGUIで動かす

Arcpyをツールボックス化することはできると思いますが、ツールボックスだとArcMap上でしか使用できないなど様々な制約があります。なのでどうしてもGUIアプリケーションを作成したくなりますよね。そこでwxPythonです。本日はwxPythonのインストールを行い…

ArcMapでTIFFをGDBに取り込む方法

本日はArcMapでTIFFファイルをGDBに取り込む方法を書いてみます。GISの仕事をしているとけっこう画像系のファイルを扱うことがありますね。 まずはツールボックスからラスタデータセットを作成します。 以下のように対象のGDBにラスタデータセットを作成して…

ビッグデータとGIS

今日、ビッグデータという言葉をよく耳にするようになったのではないでしょうか。 ただ、聞いたことはあるけど、抽象的すぎてよくわからない、という方が大半かと思います。 私も説明しろと言われたらどう説明していいかちょっとわからないですね。 ビッグデ…

航空写真とは

航空写真、あまり聞きなれない言葉だとは思いますが、皆さん一度は見たことがあるのではないでしょうか。航空写真とは、一般的に飛行機に搭載した航空カメラを使って撮影された写真のことを指します。GIS関係の仕事をしていると航空写真ってけっこう見とれて…

GISって何?

みなさんはGISという言葉をご存じでしょうか。GIS とは、Geographic Information System の略で、『ジー アイ エス』または『地理情報システム』と呼ばれています。 私は今の会社に転職してから初めてこの言葉を知りました。 近年はITの発展が目覚ましく、GI…

Shapeファイルをマップドキュメントに追加してTiff出力を行うPythonスクリプト

Shapeファイルをマップドキュメントに追加してTiff出力を行うPythonスクリプトを作ってみました。GeoTiffにもできるっぽいでのそのうちチャレンジしたい! # ArcPy 、os モジュールのインポートimport arcpy,os# フィーチャクラスの指定inFC = r"C:\Temp\Sha…

PCのソフトウェア一覧をPOWERSHELLで抽出

GISと全然関係ないけど、PowerShellでソフトウェア一覧の出し方を書いてみました。ArcはPythonが使えるけどPowerShellとも連携してくんないかなぁ。。。 #CSV出力先$fileName = "C:\temp\soft.csv"#64bitアプリ$path = "\SOFTWARE\Microsoft\Windows\Current…

ZMAPの変換

ArcGISでZMAPを見たい!そんなことを思っていたが、そのままでは見れないようだ。ZMAPをGDBに変換するアドインがあるらしい。ふむふむ。 ESRIジャパン ArcGISブログ: Zmap-TOWNII、Zmap-AREAII 変換ツールが更新!洗練された地図表現に