こちらはオーストラリアで本日雨が降った場所です。パース周辺に少し、クイーンズランドにたくさん、そして鋭い目を持つ方にはエビとワニを喜ばせるためにケープヨークにも少し降りました。 凡例は降水量(mm)を示しています。<\/P>
<\/P>
Australian Bureau of Meteorology<\/A>はダウンロード可能な気象データを公開しています。私のシナリオでは、雨量計の観測値をホストされたフィーチャサービスに再公開することに興味があります。上記の地図に表示されているものです。 少し調べたところ、データはFTP経由で利用可能<\/A>であり、そのスキーマはこのユーザーガイド<\/A>に記載されています。 データは毎日更新されます。 このブログではデータの再配布は行いませんが、ライセンスはCreative Commons<\/A>の条件下にあるため、ご希望であれば私のサンプルを実装できます。<\/P><\/P>更新頻度は毎日ですが、各ファイルには24時間以上にわたる観測値や複数センサーのデータが含まれることがあります。 とにかく、私が欲しかったのは毎日の観測値をポータルのフィーチャサービスにプッシュすることでした。ArcGIS Onlineに送ることも同様に可能です。<\/P><\/P>これらのウェブからの定期的な同期<\/STRONG>はGISでは至る所にあります。 データ管理者はデータを手動で<\/EM>取得しやすくしていますが、Data Interoperabilityを使って同期を自動化する方法<\/EM>をお見せします。 私は通常Data InteroperabilityをEsriの「ノーコード」アプリ統合技術と説明しています。 完全な開示として、このサンプルではFME Workbenches内で一部Pythonを使用したため、「ノーコード」という主張は控えますが、ローコード<\/STRONG>とは言えます。 Workbenchesでご自身で確認できます。<\/P><\/P>最初はスケジュールされたプロセスをWebツールとして作成しNotebook Serverでスケジュールしようと思っていました。 それが最も楽しい構築方法かもしれませんが、私のユースケースでは必要ないと気づきました。 以前ブログで紹介したパターン<\/A>に戻り、今回はサーバー上でWindows Task Schedulerを使用しました。 なぜデスクトップソフトウェアのアプローチを使わないかというと、高稼働率が期待できるマシンを活用し、通常の勤務時間外にスケジュールできるからです。<\/P><\/P>こちらがBoM製品ファイルをダウンロードし、フィーチャをポータルのホストされたフィーチャサービスへ送信するWorkbenchです:<\/P><\/P><\/P><\/P>そして我慢できずにPythonも紹介します、それほど怖くありません。 FTPサイト上のファイル名が安定していれば不要でしたが、ファイル名に日付スタンプが含まれているため、一部Pythonで処理する方が簡単でした。 データダウンロード中に少しクリーンアップ(囲みダブルクォーテーションと改行文字の除去)も行い、その後すべての観測値をストリームへ出力しました。<\/P><\/P><\/P><\/P><\/P>データソースが変わらないため、すべてのパラメーターをプライベートに設定しました。これによりスケジュールコマンドが簡素化されます。 必要なのはWorkbenchをサーバーに配置し、確実に実行されるようにすることだけです。 ダウンロード後には3つのFMWファイルがあります:<\/P><\/P>MakeRainGauges.fmw<\/STRONG>RefreshRainGauges.fmw<\/STRONG>RefreshRainGauges - Server Copy.fmw<\/STRONG>MakeRainGaugesはProでホストされたフィーチャサービスをインスタンス化するために使用したジオデータベースフィーチャクラスを作成します。 RefreshRainGaugesはMakeRainGaugesから作成されており、違いは初期トランケーション付きでフィーチャサービスへ書き込む点だけです。 これがスケジュールしたいWorkBenchです。 RefreshRainGauges - Server CopyはPython設定のみ異なり、Python 3.6+を使用します。 サーバー上ではその名前は使わず、この投稿用に入れただけです。<\/P>私のポータルサーバーでは少しセットアップが必要でした(すべて同じマシン上ですが、Data Interoperabilityのインストールとライセンス登録を忘れずに!)。 RefreshRainGaugesはポータルへのWeb接続を使用します。 このブログ<\/A>ではポータルWeb接続の作成方法について説明しています。 これはスケジュールプロセスを実行するarcgisユーザー<\/STRONG>用にサーバーへコピーする必要があります。 最も簡単な方法はこの記事の方法#2<\/>\u003C/A>. arcgisとしてサーバーにログオン後、まず "C:\Program Files\ESRI\Data Interoperability\Data Interoperability AO11\fmeworkbench.exe" のデスクトップショートカットを作成し、Workbench を起動して Web 接続 XML ファイルをインポートし、フィーチャサービス読み取りテストを行いました。また RefreshRainGauges をフォルダーへコピーし、Python 環境設定をサーバー用(サンプルは Pro 2.7 Beta で作成しましたがサーバーは Enterprise 10.8.1 実行中)へ調整しました。ワークスペースを対話的に実行するとログ上部にスケジュール用コマンドが表示されます:<\/>\n このワークスペース実行用コマンドライン:<\/>\n "C:\Program Files\ESRI\Data Interoperability\Data Interoperability AO11\fme.exe" C:\Users\arcgis\Desktop\RefreshRainGauges.fmw <\/><\/>\nあとは簡単で基本タスクを作成するだけです。一番難しかったのはコマンド実行時間の決定でした(UTC午前1時までデータ変更を見るので、自分のサーバー(米国西部)では現地時間午後6時に設定しました)。 arcgisユーザーがログオンしていなくてもタスクが実行されるよう設定し、バッチジョブ権限(または管理者権限)が必要です(私の場合VMマシンなので可能ですが、多くの場合許可されないでしょう)。 以上です!誰とでも共有できるデータの自動メンテナンス完了!最後に昨夜同期処理ログのスクリーンショットで締めくくります:
更新頻度は毎日ですが、各ファイルには24時間以上にわたる観測値や複数センサーのデータが含まれることがあります。 とにかく、私が欲しかったのは毎日の観測値をポータルのフィーチャサービスにプッシュすることでした。ArcGIS Onlineに送ることも同様に可能です。<\/P>
これらのウェブからの定期的な同期<\/STRONG>はGISでは至る所にあります。 データ管理者はデータを手動で<\/EM>取得しやすくしていますが、Data Interoperabilityを使って同期を自動化する方法<\/EM>をお見せします。 私は通常Data InteroperabilityをEsriの「ノーコード」アプリ統合技術と説明しています。 完全な開示として、このサンプルではFME Workbenches内で一部Pythonを使用したため、「ノーコード」という主張は控えますが、ローコード<\/STRONG>とは言えます。 Workbenchesでご自身で確認できます。<\/P><\/P>最初はスケジュールされたプロセスをWebツールとして作成しNotebook Serverでスケジュールしようと思っていました。 それが最も楽しい構築方法かもしれませんが、私のユースケースでは必要ないと気づきました。 以前
こちらがBoM製品ファイルをダウンロードし、フィーチャをポータルのホストされたフィーチャサービスへ送信するWorkbenchです:<\/P>
そして我慢できずにPythonも紹介します、それほど怖くありません。 FTPサイト上のファイル名が安定していれば不要でしたが、ファイル名に日付スタンプが含まれているため、一部Pythonで処理する方が簡単でした。 データダウンロード中に少しクリーンアップ(囲みダブルクォーテーションと改行文字の除去)も行い、その後すべての観測値をストリームへ出力しました。<\/P>
データソースが変わらないため、すべてのパラメーターをプライベートに設定しました。これによりスケジュールコマンドが簡素化されます。 必要なのはWorkbenchをサーバーに配置し、確実に実行されるようにすることだけです。 ダウンロード後には3つのFMWファイルがあります:<\/P>
MakeRainGauges.fmw<\/STRONG>RefreshRainGauges.fmw<\/STRONG>RefreshRainGauges - Server Copy.fmw<\/STRONG>
MakeRainGaugesはProでホストされたフィーチャサービスをインスタンス化するために使用したジオデータベースフィーチャクラスを作成します。 RefreshRainGaugesはMakeRainGaugesから作成されており、違いは初期トランケーション付きでフィーチャサービスへ書き込む点だけです。 これがスケジュールしたいWorkBenchです。 RefreshRainGauges - Server CopyはPython設定のみ異なり、Python 3.6+を使用します。 サーバー上ではその名前は使わず、この投稿用に入れただけです。<\/P>
私のポータルサーバーでは少しセットアップが必要でした(すべて同じマシン上ですが、Data Interoperabilityのインストールとライセンス登録を忘れずに!)。 RefreshRainGaugesはポータルへのWeb接続を使用します。
このワークスペース実行用コマンドライン:<\/>\n
"C:\Program Files\ESRI\Data Interoperability\Data Interoperability AO11\fme.exe" C:\Users\arcgis\Desktop\RefreshRainGauges.fmw
<\/><\/>\n
あとは簡単で基本タスクを作成するだけです。一番難しかったのはコマンド実行時間の決定でした(UTC午前1時までデータ変更を見るので、自分のサーバー(米国西部)では現地時間午後6時に設定しました)。 arcgisユーザーがログオンしていなくてもタスクが実行されるよう設定し、バッチジョブ権限(または管理者権限)が必要です(私の場合VMマシンなので可能ですが、多くの場合許可されないでしょう)。
以上です!誰とでも共有できるデータの自動メンテナンス完了!最後に昨夜同期処理ログのスクリーンショットで締めくくります:
サインインしたメンバーは投稿、更新のフォローなどができます。初めてですか?無料アカウントを登録してください。
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.