問題タブ [arcpy]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
6491 参照

python - Python で負のエポックから日時を作成する方法

StackExchange の最初のタイマー。

ArcGIS Server と Python を使用しています。REST エンドポイントを使用してマップ サービスへのクエリを実行しようとしているときに、JSON 応答で負のエポックの esriFieldTypeDate であるフィールドの値を取得しています。JSON 応答は次のようになります。

私が参照しているフィールドは、上記の JSON の「TRACK_DATE」です。ArcGIS Server によって返される値は、常にエポックからのミリ秒単位です。ArcGIS Server は HTML 応答も提供し、同じクエリの TRACK_DATE フィールドは「TRACK_DATE: 1851/06/27 00:00:00 UTC」と表示されます。

そのため、日付は 1900 年より前であり、Python の組み込みの datetime モジュールは 1900 年より前の日付を処理できないことを理解しています。私は 32 ビット Python v2.6 を使用しています。を使用して日時に変換しようとしています

datetime.datetime.utcfromtimestamp(float(-3739996800000)/1000)

ただし、これは失敗します

Python 2.6 で負の 1900 年より前のエポックを処理するにはどうすればよいですか? 同様の投稿を見てきましたが、ネガティブ エポックの操作について説明している投稿は見つかりませんでした。

0 投票する
1 に答える
593 参照

matplotlib - レコードごとの matplotlib 要約プロット

データベース内のレコードごとに 1 つのパラメーターの要約プロットを作成する必要があります。以下のコードを使用して、各レコードのサブプロットを作成できました (テスト データベースでは 5、ArcGIS 10.0 ファイル ジオデータベース、Python 2.6.5、Matplotlib 1.0.0) が、各サブプロットは同一です。適切な構文を特定するために、要約プロット/レポート、サブプロット構文、およびループ手法のフォーラムの例を検索しました。プロットごとに目的の 1 つのレコードではなく、プロットごとにすべてのレコードをプロットしているため、私の問題は不適切なループ構文であると予想されます。この基本的なプロットの問題を解決したら、コードの範囲を拡大して、プロットごとに 10 ~ 15 個のパラメーター、合計 3 ~ 4 個のプロット、およびいくつかの一般的な要約情報をすべてレコードごとに 1 ページの pdf に含める予定です。私は合計で数千のレコードを扱っています。

これは、スタック オーバーフローに関する私の最初の投稿です。フォーラムは、過去 1 年間、何度も私にとって非常に役立つリソースでした。私は Python を初めて使用し、matplotlib を使用するのは初めてですが、言語とこのライブラリの大きな可能性を感じています。どんな助けや提案も大歓迎です!

0 投票する
1 に答える
2193 参照

matplotlib - ループでaxesオブジェクトを使用したmatplotlib散布図

Matplotlib を使用して複数のシリーズをループでプロットするのに問題があります (Matplotlib 1.0.0、Python 2.6.5、ArcGIS 10.0)。フォーラムの調査により、同じプロットに複数のシリーズをプロットするために、Axes オブジェクトを適用することがわかりました。これがループ外で生成されたデータ (サンプル スクリプト) に対してどのように機能するかはわかりますが、同じ構文を挿入し、データベースからデータをプルするループに 2 番目のシリーズを追加すると、次のエラーが発生します。

": サポートされていないオペランド タイプ -: 'NoneType' および 'NoneType' の実行に失敗しました (ChartAge8)。"

以下は私のコードです - 提案やコメントは大歓迎です!

0 投票する
2 に答える
498 参照

gis - PostGIS / Netezza / その他のオープン ソースで ArcGIS と同等の機能を探す

PostGIS / Netezza /その他のオープンソースを使用して、以下のArcGIS関数を探しています。

  1. gp.Dissolve_management()
  2. gp.FeatureEnvelopeToPolygon_management()
  3. gp.FeatureToPoint_management()

PostGIS で同じ機能を実現するにはどうすればよいですか?

何か案が?

前もって感謝します。

ダルメッシュ

0 投票する
2 に答える
3244 参照

python - 2D 配列の値をランク付けする

こんにちは基本的に私は 2D 配列を入力し、最低から最高までの値を持つ新しいランク付けされた配列を作成したいと考えています。

私が使用している配列は、numpyarray に変換された標高ラスターです。この配列には標高の値があります。標高で並べ替えたいだけです。以下は、コードでどこまで到達したかですが、必要なものを生成していません!

助けてくれてありがとう!

追加の説明:

配列内に含まれるすべての値を最高値から最低値に並べ替えたいが、配列のインデックスと形状は維持したい。

つまり、値が 100 個ある場合、最高値 (標高) はランク 1 で、最低ランクは 100 になります。

0 投票する
1 に答える
1678 参照

python - if ステートメントを使用した Python の for ループ

このコードは、ラスター セル数が追加されたポリゴン データで使用します。たとえば、ラスターが土地被覆の場合、各土地被覆タイプの列と、各ポリゴン内の対応するセル数が表示されます。この出力は地理空間モデリング環境からのものです。Tabulate Raster は、私が使用している大きなシェープファイルでクラッシュし続けるためです。最終的には、以下のコードが達成するセル数ではなく、面積値が必要です。

そのため、コードはシェープファイル属性をループし、元のカウント フィールドを取り出し、ユーザー入力に基づいて新しいフィールドを作成し (ユーザー入力名 + ラスター値を使用して AddField をループして新しいフィールド名を取得します)、元のフィールドをループします。値を入力し、新しいフィールドのユーザー指定の面積値を計算します。基本的に、モデルビルダーで通常バッチ処理するフィールドの追加、フィールドの計算モデルを自動化しようとしています。

新しいフィールドを計算するための適切なロジックを理解するのに苦労しています。現在書かれているように、for ループで元のフィールドを取得しますが、最後の元のフィールド値のみが使用され、最後の新しいフィールドのみが入力されます。次のように、最初の元のフィールドを取得して、対応する新しいフィールドに入れるループが必要です。

origFields = ('NLCDV1', 'NLCDV2'...) and addedFields = ('KM2_LC1', 'KM2_LC2'...) の場合、addField の計算は適切な値で終了します: 'KM2_LC1' = convert (ここで convert = !NLCDV1! * cell) 'KM2_LC2' = convert (convert = !NLCDV2! * cell) など、存在する可能性のあるすべての値について。

対応する元のフィールドを新しく追加されたフィールドと一致させる方法を理解する必要があります。zip(origField, addedField, calcs) のようなものを使用することを考えていました。これを行ったとき、次の出力が得られました。

これらの行はまさに私が必要としているものですが、そのような出力を使用してフィールドにデータを入力できるかどうかはわかりません。使用できるとしても、私は python が初めてで、zip も初めてなので、方法がわかりません。それらを使用する。

ロジックに関するヘルプは大歓迎です。クリーンアップ/再注文に関する提案は大歓迎です。私が言ったように、これがすべて完了したとき、私はかなり初心者です。ロジックができたら、準備完了です。ご覧いただきありがとうございます。コードが複雑すぎる場合は申し訳ありません (その場合でも驚くことではありません)。

0 投票する
1 に答える
2261 参照

python - 座標を更新する ArcGIS のカーソル コマンドを更新しますが、座標の位置が更新されませんか?

ユーザーが座標を入力してポイントの位置を更新できるようにするスクリプトを作成しています。

スクリプトは「機能します」。つまり、最後に作成したシェープファイルには、古い座標の代わりに新しい座標が含まれています。ただし、新しいシェープファイルを ArcMap 画面にドラッグすると、属性テーブルに新しい座標が表示されていても、ポイントが古い座標の場所に移動します。

何かご意見は?ありがとう!