GRASS
GRASS GIS (Geographic Resources Analysis Support System,地理資源分析支持系統) 是一個免費、開放源代碼的地理信息系統(GIS),可用於處理柵格、拓撲矢量、影像和圖表數據。
開發者 | GRASS 開發團隊 |
---|---|
當前版本 | 7.8.5(2020年12月21日 | )
源代碼庫 | |
編程語言 | C、C++、Python、Tcl |
操作系統 | 跨平台 |
類型 | 地理信息系統 |
許可協議 | GPL |
網站 | grass.osgeo.org |
GRASS 在GPL下發布,可以在多個平台上運行,包括Mac OS X、Windows和Linux。用戶可以通過圖形用戶界面(內置的基於 X Window系統的 GUI 或通過 Quantum GIS)使用該軟件的功能;也可以通過改進的 shell 直接使用它的模塊。
GRASS 6 版本採用新的拓撲 2D/3D 矢量引擎並支持矢量網絡分析。屬性數據通過 .dbf 文件或基於 SQL 的數據庫管理系統(如 MySQL、PostgreSQL/PostGIS 和 SQLite)來管理。該系統可以勝任3D矢量圖形數據和立體像素的可視化。通過與 GDAL/OGR庫的綁定,GRASS 支持多種柵格和矢量格式。其中包括 OGC-conformal簡單要素,以實現與其他 GIS 軟件的互操作。它也支持線性參考系統。
GRASS 開發團隊是一個由來自很多地區的開發者組成的跨國群體。GRASS 是開源地理空間基金會最初的八個軟件項目之一。
目前,GRASS 在中國的相關信息維護由OSGeo中國中心負責,具體包括新聞發布,鏡像網站的維護,中文教程的修訂。
架構
GRASS 支持二維和三維的柵格和矢量數據。矢量數據模型是拓撲的,意味着面是由邊界和形心定義的;在單一圖層中邊界不能互相重疊。
GRASS 被設計成一個運行環境,執行特定 GIS 計算的工具在其中被執行。不同於典型的應用軟件,一開始執行 GRASS,用戶就會面對一個 UNIX shell,其中包括一個為執行 GRASS 命令(被稱為模塊)提供支持的改良的環境。這個環境有一個狀態,其中包括一些參數如覆蓋的地理區域和使用的地圖投影。所有的 GRASS 模塊被執行時會讀取這個狀態,並被額外地賦予一些特定的參數(如輸入和輸出的地圖,或者計算中使用的值)。多數 GRASS 模塊和功能可以通過 GUI 操作,作為通過 shell 操作地理數據的另外一個選擇。GRASS 發行版中包含超過 300 個核心模塊,此外 GRASS 網站上提供了超過 100 個用戶創建的附加模塊。GRASS庫和核心模塊用C寫成,其他的模塊用C、C++、Python、UNIX shell、Tcl 或其他腳本語言寫成。GRASS 模塊在 Unix哲學下設計,因此可以被沒有C語言編程知識的用戶用 shell 腳本聯合起來以創建更加複雜或專業的模塊。
歷史
GRASS 的開發可以追溯到 1982 年[1]。美國陸軍工程兵團的一個分支——美國陸軍建築工程研究實驗室(USA-CERL,1982-1995)開始開發 GRASS 以滿足美國軍方土地管理和環境規劃軟件的需要。在 1982 年到 1995 年間,USA-CERL 領導了許多美國聯邦政府機構、大學和私人公司進行了 GRASS 的開發, 在其基礎上開發了 GRASS 的核心組件。USA-CERL 在 1992 年完成了 GRASS 4.1,並在 1995 年之前發布了這個版本的五個更新和補丁。USA-CERL 也開發了 GRASS 5.0 浮點版本的核心組件。
USA-CERL 在 GRASS 4.1 版(1995)之後正式終止參與 GRASS。貝勒大學的一個團隊接管了軟件的開發,發布了 GRASS 4.2 版本。1999 年十月,從版本 5 開始,GRASS 軟件原先的公有領域授權被更換為 GPL[2]。
如今 GRASS 被用於全世界許多學術和商業領域,還有許多政府部門,包括 NASA、NOAA、USDA、DLR、CSIRO、美國國家公園管理局等。