1. 程式人生 > >PostGIS教程四:載入空間資料

PostGIS教程四:載入空間資料

    

    在各種庫和應用程式的支援下,PostGIS提供了許多用於載入資料的選項。

    本節將重點介紹使用PostGIS shapefile載入工具載入shapefile的基礎知識。

一、PostGIS shapefile工具

1.1、首先,返回到選項板,並單擊PostGIS部分中的PostGIS shapefile工具,PostGIS shapefile工具將啟動。

1.2、填寫PostGIS連線部分的連線詳細資訊,然後單擊“ok”按鈕。程式將測試連線並在日誌視窗中報告。

如果安裝時使用預設的資訊,就如下所示:

1.3、接下來,開啟“Add File”按鈕並導航到資料目錄檔案(資料下載地址):\postgis-workshop-2018\data。選擇nyc-census_block.shp檔案。

1.4、將檔案的的SRID(空間參考資訊)值更改為26918。請注意,架構、表名和列名已經根據shapefile檔案裡的資訊填充,但是你可以有選擇地更改它們(不要這樣做!在教程後面部分,還有一些步驟需要預設的名稱)。

1.5、保持配置部分的詳細資訊如下

1.6、單擊"Options"按鈕檢視載入選項。載入程式將使用快速“COPY(複製)"模式,並在載入資料後預設建立空間索引

1.7、最後,單擊"Import"按鈕並觀察匯入過程。這可能需要幾分鐘的時間來載入,但這是教程資料中最大的一個檔案。

1.8、重複資料目錄中其餘shapefile檔案的匯入。通過在按"Import"按鈕之前新增多個檔案,可以在一次匯入中載入多個檔案:

1.9、載入所有檔案後,單擊pgAdmin中的"Refresh"按鈕更新樹狀檢視。應該可以看到6個表顯示在樹結構:資料庫>nyc>架構>public>資料表裡。

二、什麼是shapefile?

    你可能會問自己 —— "shapefile

是什麼?"。

    一個"shapefile"通常指帶有.shp.shx.dbf和其他副檔名且字首名稱一致的檔案集合。

    例如上面的nyc_census_blocks由以下幾個檔案組成:

   一個shapfile必需有的檔案:

  • .shp    ——    儲存地理要素的幾何資訊
  • .shx    ——    儲存要素幾何圖形的索引資訊
  • .dbf    ——    儲存地理要素的屬性資訊(非幾何資訊)

    可選檔案包括:

  • .prj    ——    儲存空間參考資訊,即地理座標系統資訊和投影座標系統資訊。使用well-known文字格式進行描述。

    PostGIS shapefile工具將shapefile資料從二進位制轉換為一系列的SQL命令,然後在資料庫中執行以載入資料,從而使shapefile資料在PostGIS中可用。

三、什麼是SRID 26918?

    大多數匯入過程都是不言自明的,但即時是經驗豐富的GIS專業人員也可能被SRID難倒。

    “SRID"表示“Spatial Reference IDentifier(空間參考識別符號)"。它定義了我們資料的地理座標系統投影的所有引數。

    SRID很方便,因為它將有關地圖投影的所有資訊(可能非常複雜)打包(更具體的說應該是對映)到一個數字中。

    你可以在以下連結中查詢我們在上面使用的投影的定義:

    或直接在PostGIS內部使用對spatial_ref_sys表的查詢:

SELECT srtext FROM spatial_ref_sys WHERE srid = 26918;

    注意PostGISspatial_ref_sys表是一個OGC標準表,用於定義資料庫已知的所有空間參考系統。PostGIS附帶的資料列出了3000多個已知的空間參考系統以及在它們之間進行轉換/重新投影所需的詳細資訊。

    在以上兩種檢視方式裡,你都會看到26918對應的空間參考系統的文字表示(為了便於觀看,此處格式化得很整齊):

PROJCS["NAD83 / UTM zone 18N",
  GEOGCS["NAD83",
    DATUM["North_American_Datum_1983",
      SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],
      AUTHORITY["EPSG","6269"]],
    PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],
    UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],
    AUTHORITY["EPSG","4269"]],
  UNIT["metre",1,AUTHORITY["EPSG","9001"]],
  PROJECTION["Transverse_Mercator"],
  PARAMETER["latitude_of_origin",0],
  PARAMETER["central_meridian",-75],
  PARAMETER["scale_factor",0.9996],
  PARAMETER["false_easting",500000],
  PARAMETER["false_northing",0],
  AUTHORITY["EPSG","26918"],
  AXIS["Easting",EAST],
  AXIS["Northing",NORTH]]

    如果從data目錄開啟nyc_neighborhoods.prj檔案,將看到相同的投影資訊。

    人們開始使用PostGIS的一個常見問題是弄清楚要使用哪個SRID號來使用他們的資料。他們只有一個.prj檔案,但是應該如何將.prj檔案轉換成正確的SRID號呢?

    最簡單的答案就是使用電腦。將.prj檔案的內容插入http://prj2epsg.org。這將為我們提供與投影定義最匹配的SRID編號(或編號列表)。

    世界上並不是每個地圖投影都有對應的SRID編號,但大多數常見的投影都有對應的且儲存在prj2epsg資料庫中的SRID編號。

_images/prj2epsg_01.png

    你從當地機構收到的資料 —— 如紐約市 —— 通常是基於"洲際飛機“或"UTM"標出的地方投影。

四、使用QGIS檢視資料

    QGIS,是一個桌面端GIS檢視器/編輯器,用於快速檢視資料。

    QGIS可以檢視許多資料格式,包括shapefilePostGIS資料庫。

    它的圖形介面允許我們輕鬆探索我們的資料,以及快速的樣式設定。

    嘗試使用QGIS連線PostGIS資料庫,該應用程式可從http://qgis.org下載。