JMP 11の実験計画法における私のお気に入りの新機能の1つは、Space Filling DesignプラットフォームのFast Flexible Filling(FFF)設計です。ときに JMP 11のプレビューリリースされた、ブラッドジョーンズは示した FFFデザインの使用例ノースカロライナ州全体に大気質モニターを設置する。このブログ記事では、ジョージア州を使用して地図のFFFデザインを作成する方法を説明します。
地図図形のFFFデザインを作成するには、地図の境界の緯度と経度を含むXYファイルが必要です(を参照)。地図を作成するからエッセンシャルグラフブック [ヘルプ]メニューまたはオンライン文書詳細については)。
地図の形状座標を取得する
私はあなたがあなたが自由に使えるジョージア州のXYファイルを持っていないと仮定します。Mapsディレクトリに移動し(Windowsの場合はC:¥Program Files¥SAS / JMP / 11 / MapsまたはMacintoshの場合は/ Library / Application Support / JMP / 11 / Maps)、US-State-XYを開きます。jmpおよびUS-State-Name.jmp 州名ファイルから、Shape ID 11がジョージアに対応することを確認します。Georgiaに対応する行のX列とY列を含むUS-State-XY.jmpを使用して新しいデータテーブルを作成します。簡単なスクリプトを使用して、Space Filling Design Platformで使用可能な形式で座標を取得できます。
dt = current data table();
mymap = dt <<行列({X、Y})として取得する
xx = mymap [0,1];
yy = mymap [0,2];
show(min(xx)、max(xx));
show(min(yy)、max(yy));
show(xx、yy);
show(xx、yy)のログの結果はあなたが必要とするものです、そして緯度と経度のための最小と最大は次のステップで役に立つでしょう。
許可されていない組み合わせを含むFFFデザインの設定
これで、Space Filling Designプラットフォームを開く準備が整いました。X1とX2の経度と緯度を変更したことに注意してください。地図の形状の最小値と最大値に基づいて、経度を-86から-80、緯度を30から36の範囲で選択しました。範囲がマップを含むボックスを定義していることを確認してください。通常は問題ないはずです。あなたは、あなたの地図の形がそれのほんの一部を占めるだけの大きすぎる範囲を定義しないことを確実にしたいでしょう。下の図に私の因子表を示します。
ここで、ポイントはマップシェイプ内にのみ存在するように宣言する必要があります。マップシェイプは上記の手順で座標で定義されたポリゴンなので、JSL関数の "In Polygon"では、許可されていない組み合わせによってマップシェイプ内に出現する必要があるポイントを指定できます。Space Filling Designの赤い三角メニューの下で、Disallowed Combinationsを選択します。

実行不可能な入力変数の組み合わせを除外する式を貼り付けることができる編集ボックスがJMPに用意されています。この式は、実行不可能な値に対してゼロ以外の値を返します。「許可しない組み合わせ」ダイアログは、カスタムデザイナで使用されているものと同じです。これを行う1つの方法は、trueまたはfalseに評価されるブール式を作成することです。たとえば、因子X1とX2が-1から1の範囲にあり、単位円内に点が発生するようにしたい場合は、許可しない組み合わせをX1 ^ 2 + X2 ^ 2> 1と指定します。つまり、単位円の外側にある点は使用できません。この例では、ポイントがマップシェイプの外側にあるかどうかを評価する式が必要です。

上のshow(xx、yy)から取得できるマップシェイプのベクトルが必要です。 ( 経度、緯度、xx、yy ) 。マップシェイプの外側にある点は許可したくないので、「!In Polygon」の前にある「!」に注意してください。この場合、許可されていない組み合わせのウィンドウにコピーするスクリプトは次のようになります。
xx = [-83.108535, -83.3386899940506, -83.034712, -82.876864, -82.556835, -82.32448, -82.186154, -81.926336, -81.939737, -81.743835, -81.492253, -81.41866, -81.186829, -81.117234, -80.885517, -80.862814, -81.203572, -81.133493, -81.260076, -81.177254, -81.2884027924215, -81.493651, -81.444124, -81.949787, -82.043795, -82.036825, -82.165192, -82.214839, -84.864693, -85.002368, -85.107516, -85.041305, -85.140731, -85.061144, -84.890894303099, -85.007103, -84.96303, -85.1844, -85.605165, -84.321869];
YY = 35.000771、34.6820015115479、34.483495、34.475303、33.945353、33.820033、33.62088、33.462937、33.344941、33.14145、33.009342、32.629392、32.464086、32.117605、32.0346、31.969346、31.719448、31.623348、31.54828、31.517074、31.211065104271、30.977528、30.709714、30.827493 、30.729641、30.377884、30.358035、30.711542、31.000682、31.186451、31.540987、31.857461、32.134065、32.2615038439169、32.328362、32.424244、32.841324、34.98468、34; 34.98484、34; 34.98488、34; 34。
!多角形(経度、緯度、xx、yy)
[OK]をクリックして[続行]をクリックすると、デザインを作成する準備が整いました。許可されていない組み合わせがあるため、Fast Flexible Fillingが唯一の選択肢です。
デザインを作成する
結果をよりわかりやすく表示するために実行回数を100に変更し、[Fast Flexible Filling]ボタンをクリックしてデザインを作成します。

デザインが表示され、[テーブルの作成]ボタンをクリックすると、デザインを含むデータテーブルが作成されます。グラフビルダーを介してデザインを見ることができます。Background Mapオプションを使用すると、下図のようなものになるはずです。

これを再現するためのJSLは次のとおりです。
グラフビルダー(
コントロールパネルを表示(0)
変数(X(:経度)、Y(:緯度))、
要素(点(X、Y、凡例(1)、ジッタ(1)))、
SendToReport(
ディスパッチ(
{}、
"経度"、
ScaleBox、
{スケール( "測地線US")、フォーマット( "緯度DDD"、12、0)、
最小(-86.66255)、最大(-79.83745)、Inc(1)、
マイナーティック(0)}
、
ディスパッチ(
{}、
"緯度"、
ScaleBox、
{スケール( "測地線US")、フォーマット( "経度DDD"、12、0)、
最小(29.9)、最大(35.6)、Inc(1)、
マイナーティック(0)}
、
ディスパッチ(
{}、
"グラフビルダー"、
FrameBox、
{背景地図(境界線( "アメリカの州"))、グリッド線の順序(2)、
基準線の順番(3)}
)
)
;
最終的な考え
別々のパーツからなるマップ(複数のパーツID番号を持つ州など)を扱う場合は、各ピースに対してFFFデザインを個別に作成することをお勧めします。地図上では、FFFデザインは、地図上で単純なランダムな点のサンプルを取得するのとは異なります。FFFデザインは、デザインポイントをより均等に広げることを目的としており、地図上でのカバレッジを向上させます。
ライアンレキベッツ書きました:
素晴らしい質問です。JMPでは、2次元では任意の多角形しか扱えません。ただし、その地域の一般的な形式があれば、まだスペースを定義することができます。たとえば、XYZがある場合、許可されていない組み合わせXYZ <0またはX ^ 2 + Y ^ 2 + Z ^ 2> 1にすることができます。
スティーブン書きました:
2つの要素、経度、緯度がありますが、Polygon()で関数を使用することができます。ただし、3、4、5のように3つ以上の要素がある場合は、このような許可されていない組み合わせを使用できます。?
ありがとうございます。