公開日: 09/19/2023

独自の地図ファイル

予め用意されている地図ファイルだけでなく、それらと同じ形式のデータにすれば、JMPで独自の地図ファイルを作成することができます。独自の地図ファイルを作成するには、2つのものが必要になります。1つはシェープを構成する多角形の各頂点をXY座標として表したデータ、もう1つは、各多角形に対する名前です。独自のシェープをJMPで使用するためには、データおよびシェープの属性を設定することが必要です。よく知られている座標データとしては、Esri®シェープファイルやSAS/GRAPH®マップデータセットが挙げられます。

JMPに地図ファイルを自動的に認識させるためには、ファイルを次のディレクトリに保存する必要があります。

Windowsの場合: C:¥Users¥<ユーザ名>¥AppData¥Roaming¥SAS¥JMP¥Maps

macOSの場合: /Users/<ユーザ名>/Library/Application Support/JMP/Maps

メモ: WindowsでJMP Proを使用している場合は、「JMP」の部分が「JMPPro」になります。また、データテーブルの[地図の役割]列プロパティを使って地図ファイルをデータテーブルにリンクさせる方法もあります。

地図ファイルを作成する際、次の点に注意してください。

地図ファイルは、必ず「-Name」ファイルと「-XY」ファイルの2つで構成する必要があります。

どちらのファイルも、第1列にシェープIDを示す数値変数を昇順で入力します。「-Name」ファイルには任意の列を含めることができます。「-XY」ファイルでは、シェープは複数の行によって構築されます。シェープの凸包だけではなく、周り全体を定義するXY座標が必要です。

[地図の役割]列プロパティとして[シェープ名の定義]が指定されている列は、シェープを識別するための検索対象となるため、各行に一意の値を含んでいなければなりません。

EsriのSHPファイルを読み込んだ場合、ファイルは「-XY」ファイルとしての要件を満たす構成になっています。「-Name」ファイルは、通常、.dbfという拡張子を持ちます。Esri シェープファイルを参照してください。

SAS/GRAPHソフトウェアには、JMPで使用できるマップデータセットが多数含まれています。
SAS/GRAPHマップデータセットを参照してください。

地理的な領域ではないもの(オフィスビルの特定の階など)のコロプレス地図を作成したいときは、2種類の地図ファイルを用意します。スペースのグラフィック画像はあるもののXY座標のデータがない場合には、JMP用のCustom Map Creatorアドインを使用します。このアドインを使うと、スペースのアウトラインをなぞって-XYファイルと-Nameファイルが作成できます。このアドインはJMP File Exchangeページからダウンロードできます。

「地図の役割」プロパティ

データテーブルの列の属性やプロパティは、「列情報」ウィンドウの[列プロパティ]で指定できます。[地図の役割]プロパティは、他の列プロパティと同様に「列情報」ウィンドウで設定します。

境界線のデータ(国、地域、州、郡、国など)を含むデータテーブルを作成し、それに対応する地図をグラフビルダーで見たい場合、[列プロパティ]にある[地図の役割]プロパティを使用します。地図ファイルは、必ず「-Name」ファイルと「-XY」ファイルの2つで構成する必要があります。

次の点に注意してください。

2つの地図ファイルが、それらのファイルを置くデフォルトのディレクトリにある場合は、-Nameファイル内で[地図の役割]プロパティを指定するだけです。

2つの地図ファイルがデフォルト以外の場所にある場合は、-Nameファイル内と分析を行うデータテーブル内の両方で[地図の役割]プロパティを指定します。

[地図の役割]プロパティを指定する列には、分析するデータテーブルと同じ地名(各領域の名前)が含まれている必要がありますが、列名自体は異なっていてもかまいません。

-Nameデータテーブルに「地図の役割」プロパティを追加するには、次の手順に従います。

1. 境界線を含む列を右クリックし、[列プロパティ]>[地図の役割]を選びます。

2. [地図の役割]の下で[シェープ名の定義]を選択します。

3. [OK]をクリックします。

4. データテーブルを保存します。

図12.10 シェープ名の定義の例 

シェープ名の定義の例

分析するデータテーブルに「地図の役割」プロパティを追加するには、次の手順に従います。

メモ: この手順は、自分で作成した境界線ファイルがデフォルトのカスタム地図ディレクトリにない場合にのみ行ってください。

1. 地名(領域の名前)を含む列を右クリックし、[列プロパティ]>[地図の役割]を選びます。

2. [地図の役割]の下で[使用するシェープ名]を選択します。

3. 「地図の名前データテーブル」の横にあるここに画像を表示をクリックして-Name地図データテーブルを参照します。相対パスまたは絶対パスを入力できます。

地図データテーブルが同じフォルダにある場合は、ファイル名だけを入力します。パスにスペースが含まれている場合でも引用符は不要です。

4. 「シェープ定義の列」リストで、該当の地名が含まれている、地名ファイル内の列を選択します。

Figure 12.11は、「S4 Temps.jmp」サンプルデータテーブルの「部屋番号」列の例です。

図12.11 「シェープ定義の列」の例 

「シェープ定義の列」の例

5. [OK]をクリックします。

6. データテーブルを保存します。

こうして設定した後、グラフビルダーでグラフを作成する際に、「地図の役割」プロパティを追加した列を「地図シェープ」ゾーンに割り当てると、ファイルで定義された境界線の地図がグラフに表示されます。

XYファイルの数値列に対しては、列情報ウィンドウの「表示形式」にて数値の表示形式を設定できます。ここで、そこで指定された表示形式が、グラフで表示される時に使われます。地図用の表示形式である緯度経度の形式は、列情報ウィンドウの[表示形式]>[地図]で選択できます。

地図

緯度と経度を表示します。緯度と経度が次の形式で表示されます。

DDD(度)

DMM(度分)

DMS(度分秒)

各形式の、最後のフィールドは小数部です。方角は、度フィールドの前に符号をつけて示すか、接尾辞で示すかを指定できます。符号付きで表示する場合(例: -59°00'00")は、[方角]のチェックを外します。末尾に方角を表示する場合(例: 59°00'00" )は、[方角]にチェックを入れます。

[フィールド句読記号]のチェックを外すと、度、分、秒はスペースで区切られます。チェックを入れると度、分、秒の記号が表示されます。

Esri シェープファイル

Esriシェープファイルは、地形や海など、地理的な特徴に関するデータを含むベクトルデータ形式です。地理マッピングソフトウェアの仕様として、Esriにより開発され、定義されています。

Esriシェープファイルは、名前が同じで拡張子の異なる一連のファイルで構成されます。

メインファイル(.shp

.shpファイルには、多角形(ポリゴン)を構成する一連の点が保存されています。JMPで.shpファイルを開くと、JMPテーブルとして読み込まれます。

この読み込みの際、地域を一意に識別する目的で「Shape」列が追加されます。座標点が1つずつ個別の行に保存されます。

「Part」列は、離れている領域を区別するための列です。また、XY座標(緯度と経度)も含まれています。

JMPは、(高度情報のない)2次元の.shpファイルをサポートしています。

dBASEテーブル(.dbf

.dbfテーブルの「Shape ID」の列は、.shpファイルの「Shape」列にマッピングされます。具体的な地域を示す名前や値を含む、任意の数の列を追加できます。

EsriシェープファイルをJMPの地図ファイルに変換するには、次の手順に従います。

1. JMPで.shpファイルを開きます。

2. .shpファイルの第1列が「Shape」列であることを確認します。X列とY列には表示形式や軸の設定を追加することができます。これらの設定は、グラフビルダーでX軸とY軸を作成する際に使われます。

3. .shpファイルに「-XY.jmp」で終わる名前をつけ、JMPデータテーブルとして「Maps」フォルダに保存します。

4. .dbfファイルを開きます。

5. テーブル内の第1列として「Shape ID」列を追加します。この列の値は、行番号(1~データテーブル内の行数)です

メモ: [列]>[列の新規作成]>[データの初期化]>[シーケンスデータ]を使用すれば、列を連番で埋めることができます。

6. 地名を含んでいる列に[地図の役割]列プロパティを割り当てます。それには、列の上部で右クリックし、[列プロパティ]>[地図の役割]を選択します。

7. 「地図の役割」のドロップダウンボックスから[シェープ名の定義]を選択します。

8. ファイル名として、ファイル名の先頭が「-XY」ファイルテーブルと同じで、かつ、「-Name.jmp」で終わるファイル名をつけ、JMPデータテーブルとして保存します。

JMPは、地図ファイルを2つの場所で探します。1つは、コンピュータの全ユーザに共有されるディレクトリで、次の場所にあります。

Windowsの場合: C:¥Program Files¥SAS¥JMP¥17¥Maps¥

macOSの場合: /Library/Application Support/JMP/17/Maps

もう1つは個々のユーザに特有の場所です。

Windowsの場合: C:¥Users¥<ユーザ名>¥AppData¥Roaming¥SAS¥JMP¥Maps

macOSの場合: /Users/<ユーザ名>/Library/Application Support/JMP/Maps

メモ: WindowsでJMP Proを使用している場合は、JMPの部分がJMPProになります。

SAS/GRAPHマップデータセット

SAS/GRAPH®ソフトウェアには、多数のマップデータセットが用意されています。それらのデータセットは、変換すれば、JMPでも利用できます。データセットはMAPSライブラリに入っています。従来型のマップデータセットは、XY座標のデータと、一般的な地名が保存された地図テーブルで構成されています。両ファイルをJMPデータテーブルに変換することで、JMPで使用できるようになります。

ほとんどの従来型のマップデータセットには、ラジアンを単位とする非投影の緯度経度変数が含まれています。これらのデータは、単位を度に変換し、投影向けに経度変数を調整した後、JMPで使用可能になります。以下は、「Belize」データセットの変換プロセスを示すDATAステップです。

data WORK.BELIZE;
keep id segment x y;
rename segment=Part;
set maps.belize;
if x NE .;
if y NE .;
y=lat*(180/constant('pi'));
x=-long*(180/constant('pi'));
run;

変換後のファイルを読み込み、「Belize-XY.jmp」という名前で保存します。

次に、対応する地名ファイル(この例では「MAPS.BELIZE2」)を読み込みます。地図ファイルを読み込んだ後、ID列をデータテーブルの冒頭に移動します。グラフビルダーでシェープとして使用したい地名の列に[地図の役割]列プロパティを割り当てます。それには、列の上部で右クリックし、[列プロパティ]>[地図の役割]を選択します。次に「地図の役割」のドロップダウンボックスから[シェープ名の定義]を選択します。「MAPS.BELIZE2」ファイルでは、「IDNAME」列を使います。地図テーブルに「Belize-Name.jmp」という名前をつけて保存します。

SAS/GRAPHのマップデータをJMP用に変換するには、JMP File ExchangeページからSAS to JMP Map Converterアドインをダウンロードして使用することもできます。アドインは、2つのSASマップデータからデータを読み込み、再編成して形式を整え、2つのJMPデータテーブルとして保存します。

より詳細な情報が必要な場合や、質問があるときは、JMPユーザーコミュニティで答えを見つけましょう (community.jmp.com).