地理情報システム

地図製作者、地理学者、およびGIS専門家のためのQ&A

1
GRASSで画像分類のためにLandsat画像をパンシャープンするには?
パンシャープンされた15m解像度の画像を使用して、GRASSでi.cluster> i.maxlikを使用して、Landsatシーンの教師なし分類を行う方法を学習したいと思います(Wikiの例では通常の30m解像度を使用しています)。 i.pansharpen最初にパンシャープン画像を作成するために使用してみましたが、またはi.pansharpenを使用して結合できる3つのチャネルしか出力できません。私の知る限り、画像分類プロセスには、完全なマルチスペクトルバンド1〜7が必要です。15m解像度のバンド8画像を使用してパンシャープンされた個別のバンド(バンド1〜7)を生成する方法画像分類プロセス?d.rgbr.composite 私は彼らがこれをどのように行ったかを示す論文を見つけました。基本的には、何らかの種類の主成分分析を使用して、30mのマルチスペクトルバンドを15mのパンクロマティックバンドに何らかの方法でマージしました。正確な引用は次のとおりです。 「この方法では、最初に30メートルのマルチスペクトル画像を15メートルにリサンプリングします。次に、マルチスペクトル画像の6つの主成分すべてを計算します(コース解像度のためにサーマルバンドを削除しました)。その後、パンクロマティックバンドのヒストグラム(15メートル解像度)は30メートル画像の最初の主成分のヒストグラムに一致するように再スケーリングされ、最初の成分は再スケーリングされたパンクロマティックバンドに置き換えられます。パンクロマティック画像の広いスペクトルバンド。置換後、6つのコンポーネントは元のデータ空間に変換され、空間解像度が向上します。」 まず、この論文はアルゴリズム/公式をまったく示していませんでした。上記の引用を対応する数式に変換する方法がわかりません。i.pansharpen通常のBroveyやIHSの代わりにPCAアルゴリズムを使用できることに気づきましたが、それでも出力は赤、青、緑の3チャンネルのみになります-悲しいことに、それらを画像分類に使用する方法がわかりません.. したがって、新しいPCAアルゴリズムを手動で記述しようとして頭を割ろうとする前に、パンシャープンLandsat画像で画像分類を実行するためのより簡単でより良い方法を指摘するのを手伝ってくれる人はいますか?つまり、もっと簡単な方法があるはずですよね?シンプルなものが欠けているような気がします。 残っている唯一のルートが自分のスクリプトを書くことである場合、皆さんは私がやろうとしていることの例に似ている何かをそこに指摘していただけますか? どんな助けも大歓迎です!

2
接続されたエッジ間の特別な関係をどのように説明しますか?
3つのエッジがノードで接続するこの単純な状況を考えてみましょう。 AとCの関係から区別するように、AとBの関係を簡潔かつ明確に説明したいと思います。Bに、しかしAは隣接していない?Cへ。」しかし、実際には隣接関係ではありません。 別の言い方をすると、ノードに立って、Aに向かっていると想像してください。時計回りに回転し始めます。次のエッジはCではなくBです。 AとBの間のこの関係を、上で書いたよりも簡潔、正式、または正しい方法で説明する方法はありますか? それは方向性でなければなりません(このタイプの関係の1つはAから時計回りに存在し、別の関係は反時計回りに存在します)。また、ノードで3つ以上のエッジが接続されている場合にスケールアップする必要があります。たぶんルーティングと関係があるのでしょうか?(私はこれを道路網の文脈で考えています。) 私はすでに試したことがありますが、まだ十分ではない2つのアプローチ: 9IMのようなトポロジ参照:DE-9IMを調べましたが、数学者ではありませんが、図や用語から、このタイプの関係をカバーしていないことはまだわかると思います。また、ESRIヘルプまたはOracleヘルプのトポロジの説明にもまだ記載されていません。(おそらくそこに何かがありますが、私はまだそれを見つけていないだけです!) 顔:Aの "北"側の顔もBで囲まれている可能性があるという事実をいじりましたが、Cではありません。しかし、ここの図でわかるように、それは必ずしも真実ではありません。私の図が、AとCが幹線道路で、Bが短い行き止まりの道路である道路ネットワークからの抜粋であると想像してください。 私が言おうとしていることに対する単一の用語がないかもしれないと思う。少なくとも、私が上でやったよりも簡単な方法でそのような関係を説明できるようにしたいです。これはプラットフォームに依存しない質問です。今、私はちょうど正しい言葉を探しています。後で、シェープファイルのpython(pyqgisまたはarcpy)で概念を実装しようとするので、そのエンドポイントを念頭に置いた回答は特に興味深いが、必要ではありません。

2
可視領域計算を実装する方法は?
可視性(別名可視領域)を実装する方法を探しています。以前のGIS SEの質問で、いくつかのGISアプリケーション(必要なものではありません-計算を埋め込むことを試みています)とSAGAを提案しました。SAGAは私が探しているもの(C ++、Java、C#クラス)に似ていますが、インスタンス化(またはサブクラス)する必要があるクラスを把握するためのAPIドキュメントを十分に理解できません。 私はSAGAの考えに縛られていません-私は、相互可視性の計算を行うことができるライブラリ/エンジンを探しています。 制約は次のとおりである必要があることです。 合理的に「軽量」(埋め込み/モバイルをカバーできるようにしたいので) 合理的にオープンソース(私のアプリケーションはオープンソースになりますが、(L)GPL互換であれば、どのライセンスでも正確に柔軟に対応できます)。 誰でもそのようなライブラリまたはエンジンを推奨し、計算の可視化に使用する必要があるライブラリまたはエンジンのビットの説明またはリンクを提供できますか? 代わりに/追加で、これらの計算を効率的な方法で行う方法を説明した論文またはチュートリアルへの参照も感謝します(組み込み/モバイルデバイスに適用されるため、GPUベースの実装は、より一般的で、低電力デバイスを処理します) 私の好みは、自分で何かを作成するのではなく、既存の実装です(これはバックアップオプションです)。 編集:C ++は必須要件ではありません-合理的に移植可能なもの(C#、C ++、Java)で十分です。大規模なアプリケーションを埋め込むのではなく、ライブラリまたはテンプレートを探しています。
11 c++  saga  viewshed 

2
PostGISで時間に関してポイントクラスターを識別および簡素化する方法
空間データベースの使用を開始したばかりで、生のGPSトラックを自動で一般化するためのSQL(PostGIS)クエリを作成したい(追跡頻度を固定)。私が最初に注目しているのは、「yメートルの距離内にあるxポイント」のようなクエリの形式で停止ポイントを特定し、代表的なポイントで巨大なポイントクラウドを置き換えるクエリです。特定の距離内でポイントをスナップし、スナップしたものをカウントすることは既に実現しました。下の図では、未加工のサンプルトラック(小さな黒い点)と、スナップされた点の中心が色付きの円(サイズ=スナップされた点の数)として表示されています。 CREATE table simplified AS SELECT count(raw.geom)::integer AS count, st_centroid(st_collect(raw.geom)) AS center FROM raw GROUP BY st_snaptogrid(raw.geom, 500, 0.5) ORDER BY count(raw.geom) DESC; 私はこのソリューションに非常に満足していますが、時間の問題があります:トラックを1日コースとして都市でイメージすることで、その人は以前に訪れた場所に戻ることができます。私の例では、濃い青色の円は、彼が2回訪れた人の家を表しますが、もちろん私のクエリはそれを無視します。 この場合、洗練されたクエリは、連続するタイムスタンプ(またはID)を持つポイントのみを収集する必要があるため、ここでは2つの代表的なポイントが生成されます。最初のアイデアは、クエリを3Dバージョンに変更することでした(3番目の次元としての時間)が、うまくいかないようです。 誰か私にアドバイスはありますか?私の質問が明確であることを願っています。 ラインアイデアをありがとう。下のスクリーンショットでわかるように、ラインストリングを作成して単純化することに気付きました(ドットは元のポイントです)。 私がまだ必要なのは、理想的には到着時間と出発時間を持つ1つのポイントとして、休憩場所(半径<xメートル内のxポイント)を決定することです...他のアイデアはありますか?
11 postgis  point  time 

1
fortify()を使用して、シェープファイルからフィルター処理されたRデータフレームを作成するにはどうすればよいですか?
私はggplotウェールズの行政区域の人口のコロプレス地図を作成中です。Ordnance Surveyから境界線データをダウンロードし、正しいシェイプファイル(community_ward_region.shp)と思われるものを抽出しました。Rを使用すると、シェープファイルを読み取ることができます。 require(maptools) shape <- readShapePoly(wards) str(shape) これにより、この有望な出力が得られます。 Formal class 'SpatialPolygonsDataFrame' [package "sp"] with 5 slots ..@ data :'data.frame': 1690 obs. of 4 variables: .. ..$ NAME : Factor w/ 1507 levels "Abbey Cwmhir",..: 969 90 111 200 441 477 1455 249 255 305 ... .. ..$ DESCRIPTIO: Factor w/ …
11 shapefile  r 

2
osm2pgsqlでは、planet_osm_roadsテーブルはどのように読み込まれますか?
osm2pgsqlを使用して、planet.osmから北米OSMデータベースにデータを入力しています。 結果のPostGISスキーマがどれほどシンプルであるかは気に入っていますが、その内容に少し混乱しています。 2つのテーブルplanet_osm_roadsとがありplanet_osm_lineます。planet_osm_roadsにはすべての高速道路データが含まれていると想定しましたが、一部の「高速道路」タイプの道路の一部しか含まれていないことを発見しました。 たとえば、planet_osm_lineには12,000,000を超える行があり、「highway」の値は「residential」です。ただし、planet_osm_roadsには2,000しかありません。比較すると、両方のテーブルには同じ数の「高速道路」機能があります。データを見ると、なぜ一部の機能が一方のテーブルにあり、もう一方のテーブルにはないのかわかりません。 osm2pgsqlがラインフィーチャを各テーブルに導くために使用するルールを確認したいと思います。 私はosm2pgsqlのソースコードを調べて謎に光を当てようとしましたが、これまでのところ、私が探しているものは見つかりませんでした。 ご提案は大歓迎です。

3
Rgeosは、ポリゴンを交差させるときに関連する値をドロップします
2つのSpatialPolygonsDataFramesを交差させて、結果としてSpatialPolygonsDataFrameを取得しようとしています。残念ながら、gIntersection関数rgeos(ポリゴンを交差させるために非常に高速に動作します)を使用すると、関連するデータフレームを取得できないようです。次の例を考えてみましょう。 > fracPoly <- gIntersection( toSingle, fromSingle ) > class(toSingle) [1] "SpatialPolygonsDataFrame" > class(fromSingle) [1] "SpatialPolygonsDataFrame" > class(fracPoly) [1] "SpatialPolygons" の転送を処理するラッパー関数を書くことはできますが、data.framesすべてのチェックを正しく行うのはささいな痛みになります。以下のためにgIntersection)これは私が関連を保持できるようになりますdata.frames。 更新 さらに考察すると、これはによる非常に意図的な動作である可能性がありますgIntersection。結局のところ、2つのSPDFのうち、誰のdata.frameを渡すのですか?そのため、2つをマージするラッパーを作成する必要があります。

3
「逆さま」ラベルの規則は何ですか?
ラベルに使用するラインフィーチャがあります。これらの行は、正しい向き(回転)で配置され、配置されたテキストが適切なカートグラフィック出力を提供するように配置されます。 以下の2つの画像とそのラベルを比較します。特に、「ウェイバートン」という言葉と「アベニュー」に関連したその方向。 左は、すべてのラベル付けエンジンがデフォルトで生成するように見えるものです。Ordnance Surveyによると、権利は「あるべき」ものです。 私の主な質問は-どちらが正しいのか、なぜですか?ここでの地図上の慣習は何ですか? QGIS(2つ)、MapInfo、ArcGIS(2つ)に分かれている5つのラベリングエンジンのうち、ユーザーがラベルを線の方向に従うことを主張できるオプションがあるのは、Maplexのみです。他の人はすべて、逆さまのテキストは望ましくないと想定し、自動的に「修正」します。 (地図:©Crown Copyright and database right 2012. Ordnance Survey100019520。)

1
OpenLayers外部チェックボックスからレイヤーを非表示/表示
OpenLayersとmapserverを使用して、多くのラスターイメージとクエリ可能なwmsレイヤーを表示しています。すべてが正常に機能し、レイヤーはOpenLayersレイヤースイッチャーでオン/オフを切り替えることができます...しかし、今では外部チェックボックスでレイヤーをオン/オフしたいのですが、これを行う方法がわかりません。 私はJavascriptを少し使い始めました。知っている唯一のことは、チェックレイヤーの値をOpenLayers関数に渡さなければならないことです。今まで、onClickイベントで関数を呼び出そうとしました <input type="checkbox" name="ckeckbox_layer1" onClick="layervisibility(this.checked);"> しかし、チェックボックスをオン/オフすると、openlayers init()関数に実際に配置されているレイヤーが正しくオン/オフになるように、関数 'layervisibility'がどのように見えるかがわかりません。
11 openlayers 

3
QGISの属性テーブルのデータタイプを変更しますか?
FIP(実際には州FIPSと郡FIPSを組み合わせたもの)の郡データがあります。STCountyという同じFIPSデータを持つCSVとしてインポートされたデータがあります。ただし、シェープファイルFIPSは実数としてリストされ、CSVは整数として入力され、Join関数は機能しないようです。ドロップボックスはグレーアウト/空です。 それでは、テーブルの属性タイプをどのように変更するのかという大きな質問がありますか? シェイプファイル(国のデータ)に新しい列を作成し、整数に設定してからFIPS * 1を掛けようとしましたが、列が「NULL」でいっぱいになりました。 私はQGISを初めて使用し、MapInfoで多くの経験を持っているため、結合の概念は私にとって新しいものではなく、QGISの構文だけです。

4
ArcPyでポイントペア座標からラインを作成しますか?
いくつかのポイントペア座標(開始ポイントと終了ポイント)があり、それらを線に変換する必要があります。これまで、a pippo.Point()、a の両方の座標のアペンドを使用してpippo.CalculateGeometry()各ピオントのジオメトリを定義し、pippo.append(defined geometry)ポイントのペアを識別してから、PointsToLineを使用してラインを取得しました。これは、数百の行に対して非常に時間がかかります。 これを行う簡単な方法はありますか? たとえば、各行の開始点と終了点を単一のテーブルの異なるフィールドに配置し、ポイントジオメトリを渡さずに行を直接インポートします。

4
日付変更線の近くでgdalwarpが世界に広がる出力を作成するのを止める方法は?
私はgdalwarpを使用して、日付線の近くのSRTMタイルを操作しています(つまり、180度、別名反時計回り)。SRTMタイルには、子午線と非常にわずかな(1/2ピクセル)オーバーラップがあります。これはgdalinfoを使用して確認できます。 gdalinfo S16W180.hgt Driver: SRTMHGT/SRTMHGT File Format Files: S16W180.hgt Size is 1201, 1201 [...] Lower Left (-180.0004167, -16.0004167) (180d 0' 1.50"W, 16d 0' 1.50"S) Upper Right (-178.9995833, -14.9995833) (178d59'58.50"W, 14d59'58.50"S) [...] そのため、ソースは日付変更線にわずかにまたがっています。 これにより、gdalwarpで問題が発生し、最終的に巨大な地球規模の出力が作成されます。 gdalwarp -t_srs "epsg:900913" S16W180.hgt test.tif gdalinfo test.tif Driver: GTiff/GeoTIFF Files: test.tif Size is 1703, 5 [...] Lower …
11 srtm  gdalwarp 



5
ArcGIS Desktopを使用して境界内にパスを作成しますか?
観測された場所に基づいて、魚の移動経路を作成したいと考えています。 私は川や湖の中の魚の動きを見ているので、ポイントをつないでポリラインを形成するだけではうまくいきません。多くのパスが陸上にあるからです。移動経路を水の境界内に制限する何らかの方法が必要です。 私はプログラマーではなく、Arcツールボックスのツールを使用して操作を実行します。連続するポイント間の距離を持つFATの新しい列も役立ちます。 ArcMap 10を使用しています。 移動経路を生成する方法に関する提案はありますか? データに関するもう少しの情報。場所の大部分は、多くの観測値を生成する傾向があるリモートレシーバーから収集されます(私のプロジェクトの1つは、300万を超える検出と増加を持ち、各検出レコードにはID、日時、緯度経度が含まれます)。魚が受信機の検出範囲内に留まっている場合、2分ごとに約1回検出されるため、多くの観測(ポイント)が発生するため、最初のステップは、この場合1日間の緯度と経度を平均することです。湖の生息地での検出の平均化は通常うまくいきますが、川の部分でそれを行うと、川/湖の境界の外側で検出される可能性があります。だから私が最初にすべきことは「スナップ」です 川/湖の境界への平均化された場所と、その後、川/湖の境界内に制限された移動パスを作成したいと思います。理想的には、このパスには各線分の距離が含まれます。私の川はポリラインであり、湖はポリゴンですが、必要に応じて川をポリゴンに変換できます。あるいは、未処理の平均化されていないデータを使用し、境界内にすべての検出を行うことができますが、境界内に制限された移動パスを作成することは依然として問題ですが、多くのデータが発生します。 添付の画像は、2種類の魚の毎日の平均位置を示しています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.