PostGIS使用小結

文章目錄

  • PostGIS使用小結
    • 簡介
    • 安裝
    • 配合postgres使用的操作
      • 1.python安裝gdal


PostGIS使用小結

簡介

PostGIS 是 PostgreSQL 數據庫的地理空間數據擴展,通過為 PostgreSQL數據庫增加地理空間數據類型、索引、函數和操作符,使其成為功能強大的空間數據庫,廣泛應用于 GIS(地理信息系統)等需要處理地理空間數據的場景。

安裝

  1. PostgreSQL安裝
    官網地址:https://www.enterprisedb.com/downloads/postgres-postgresql-downloads
    在這里插入圖片描述

  2. 安裝

2.1 windows安裝

安裝包一步步安裝即可。

注意點:不要使用PostgreSQL 自帶的Stack Builder安裝擴展,網速太慢無法下載。

2.2 PostGIS擴展安裝
下載地址:https://download.osgeo.org/postgis/windows/
下載對應版本的擴展
在這里插入圖片描述
安裝注意點:
(1)勾選驅動和空間數據庫,如下圖
在這里插入圖片描述
(2)安裝目錄選擇PostgreSQL 安裝的根目錄,如下圖所示
在這里插入圖片描述

2.3 安裝QGIS
下載地址:https://www.qgis.org/download/
在這里插入圖片描述
安裝按照順序操作

  1. 使用
    3.1 矢量數據導入
    使用PostGIS的導入界面:PostGIS PostGIS Bundle 0 for PostgreSQL x64 17 Shapefile and DBF Loader Exporter。
    在這里插入圖片描述
    注意點:
    (1)導入路徑不能有中文字符
    (2)導入選項里面的字符編碼要與dbf的編碼一致
    (3)坐標系要自己填寫代號。比如4326-WGS84,4490-CGCS2000,自定義坐標系代號參照后續步驟。

數據導入成功后,通過PostgreSQL查看相應記錄:
a.數據表:
在這里插入圖片描述
shp數據與數據表字段對應情況:
geom --> shp數據的幾何數據
其他字段 --> dbf數據的屬性數據

注意:
(1)geom字段以二進制形式記錄了幾何數據,可以通過以下查詢查看文本數據:

SELECT ST_AsText(geom) FROM public.數據表 ORDER BY gid ASC 

b.spatial_ref_sys表
功能:記錄數據的坐標系
注意:
(1)自定義坐標系導入:轉成proj4的描述串+自定義一個編號
轉化prj–>proj4:

#假設 a.prj 文件內容為 WKT 格式
projinfo -s “cat a.prj” -o PROJ

INSERT INTO spatial_ref_sys (srid, auth_name, auth_srid, proj4text, srtext)
VALUES (99999,                          -- 自定義 SRID(確保未被占用)'USER',                         -- 權威機構為 USERNULL,                           -- 無 EPSG 編號'+proj=tmerc +lat_0=0 +lon_0=117 +k=0.9996 +x_0=500000 +y_0=0 +ellps=WGS84 +units=m +no_defs',  -- Proj.4 字符串'PROJCS["自定義投影",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",117],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Easting",EAST],AXIS["Northing",NORTH]]'  -- WKT 字符串
);

針對轉換參數的情況:
–指定七參數

-- 方法一:使用 +towgs84 參數(適用于粗略轉換)
INSERT INTO spatial_ref_sys (srid, auth_name, auth_srid, proj4text, srtext)
VALUES (99999,  -- 自定義 SRID'USER',NULL,'+proj=tmerc +lat_0=0 +lon_0=117 +k=0.9996 +x_0=500000 +y_0=0 +ellps=WGS84 +towgs84=ΔX,ΔY,ΔZ,εx,εy,εz,m +units=m +no_defs','...'  -- 對應的 WKT 定義
);-- 示例:假設七參數為 ΔX=100, ΔY=50, ΔZ=20, εx=0.5, εy=0.3, εz=0.1, m=0.2ppm
'+towgs84=100,50,20,0.5,0.3,0.1,0.2'

–使用自定義網格文件(更精確的轉換)

-- 將網格文件上傳至 PostGIS 服務器的 /usr/share/proj/ 目錄
INSERT INTO spatial_ref_sys (srid, auth_name, auth_srid, proj4text, srtext)
VALUES (99999,'USER',NULL,'+proj=tmerc +lat_0=0 +lon_0=117 +k=0.9996 +x_0=500000 +y_0=0 +ellps=WGS84 +nadgrids=/usr/share/proj/mygrid.gsb +units=m +no_defs','...'
);

c.geometry_columns視圖
記錄數據的坐標系、幾何類型、坐標維度等信息。

配合postgres使用的操作

1.python安裝gdal

下載輪子:https://github.com/cgohlke/geospatial-wheels/releases
在這里插入圖片描述
找到gdal相應版本進行下載。
在這里插入圖片描述
cp312:表示python的3.12系列版本

定位到python安裝的根目錄,將輪子放到這里,然后在此目錄啟動命令行。
執行安裝:

pip install GDAL-3.13.0-cp312-cp312-win_amd64.whl

安裝成功后,即可正常使用gdal環境。同時可以發現已安裝osgeo環境

gdal轉prj成proj4串示例:

from osgeo import osr# 啟用異常處理(GDAL 4.0+默認行為,提前適配)
# 不啟用,提示錯誤:
# D:\Programs\miniconda3\Lib\site-packages\osgeo\osr.py:413: FutureWarning: Neither osr.UseExceptions() nor osr.DontUseExceptions() has been explicitly called. In GDAL 4.0, exceptions will be enabled by default.
# https://www.doubao.com/thread/wcce32b284e0e75ff
osr.UseExceptions()prj_text = open(r"G:\work\項目\test.prj").read()
sr = osr.SpatialReference()
sr.ImportFromWkt(prj_text)
proj4_str = sr.ExportToProj4()
print(proj4_str)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/81260.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/81260.shtml
英文地址,請注明出處:http://en.pswp.cn/web/81260.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

NNG和DDS

NNG (Nanomsg Next Generation) 和 DDS (Data Distribution Service) 是兩種不同的通信協議,各自在不同場景下具有其優勢。下面我將對這兩種技術進行詳細解釋,并通過具體的例子來說明它們如何應用在實際場景中。 1. NNG (Nanomsg Next Generation) NNG簡…

自制操作系統day7(獲取按鍵編碼、FIFO緩沖區、鼠標、鍵盤控制器(Keyboard Controller, KBC)、PS/2協議)

day7 獲取按鍵編碼(hiarib04a) void inthandler21(int *esp) {struct BOOTINFO *binfo (struct BOOTINFO *) ADR_BOOTINFO; // 獲取系統啟動信息結構體指針unsigned char data, s[4]; // data: 鍵盤數據緩存&#x…

Javase 基礎加強 —— 09 IO流第二彈

本系列為筆者學習Javase的課堂筆記,視頻資源為B站黑馬程序員出品的《黑馬程序員JavaAI智能輔助編程全套視頻教程,java零基礎入門到大牛一套通關》,章節分布參考視頻教程,為同樣學習Javase系列課程的同學們提供參考。 01 緩沖字節…

服務器操作系統調優內核參數(方便查詢)

fs.aio-max-nr1048576 #此參數限制并發未完成的異步請求數目,應該設置避免I/O子系統故障 fs.file-max1048575 #該參數決定了系統中所允許的文件句柄最大數目,文件句柄設置代表linux系統中可以打開的文件的數量 fs.inotify.max_user_watches8192000 #表…

[Windows] 格式工廠 FormatFactory v5.20.便攜版 ——多功能媒體文件轉換工具

想要輕松搞定各類媒體文件格式轉換?這款 Windows 平臺的格式工廠 FormatFactory v5.20 便攜版 正是你的不二之選!無需安裝,即開即用,為你帶來高效便捷的文件處理體驗。 全能格式轉換,滿足多元需求 軟件功能覆蓋視頻、…

[AI]主流大模型、ChatGPTDeepseek、國內免費大模型API服務推薦(支持LangChain.js集成)

主流大模型特色對比表 模型核心優勢適用場景局限性DeepSeek- 數學/代碼能力卓越(GSM8K準確率82.3%)1- 開源生態完善(支持醫療/金融領域)7- 成本極低(API價格僅為ChatGPT的2%-3%)5科研輔助、代碼開發、數據…

國際薦酒師(香港)協會亮相新西蘭葡萄酒巡展深度參與趙鳳儀大師班

國際薦酒師(香港)協會率團亮相2025新西蘭葡萄酒巡展 深度參與趙鳳儀MW“百年百碧祺”大師班 廣州/上海/青島,2025年5月12-16日——國際薦酒師(香港)協會(IRWA)近日率專業代表團出席“純凈獨特&…

Node.js Express 項目現代化打包部署全指南

Node.js Express 項目現代化打包部署全指南 一、項目準備階段 1.1 依賴管理優化 # 生產依賴安裝(示例) npm install express mongoose dotenv compression helmet# 開發依賴安裝 npm install nodemon eslint types/node --save-dev1.2 環境變量配置 /…

java基礎知識回顧3(可用于Java基礎速通)考前,面試前均可用!

目錄 一、基本算數運算符 二、自增自減運算符 三、賦值運算符 四、關系運算符 五、邏輯運算符 六、三元運算符 七、 運算符的優先級 八、小案例:在程序中接收用戶通過鍵盤輸入的數據 聲明:本文章根據黑馬程序員b站教學視頻做的筆記,可…

隨機密碼生成器:原理、實現與應用(多語言實現)

在當今數字化的時代,信息安全至關重要。而密碼作為保護個人和敏感信息的第一道防線,其安全性直接關系到我們的隱私和數據安全。然而,許多人在設置密碼時往往使用簡單、易猜的組合,如生日、電話號碼或常見的單詞,這使得…

TypeScript 泛型講解

如果說 TypeScript 是一門對類型進行編程的語言,那么泛型就是這門語言里的(函數)參數。本章,我將會從多角度講解 TypeScript 中無處不在的泛型,以及它在類型別名、對象類型、函數與 Class 中的使用方式。 一、泛型的核…

SQL 每日一題(6)

繼續做題! 原始表:employee_resignations表 employee_idresignation_date10012022-03-1510022022-11-2010032023-01-0510042023-07-1210052024-02-28 第一題: 查詢累計到每個年度的離職人數 結果輸出:年度、當年離職人數、累計…

工業RTOS生態重構:從PLC到“端 - 邊 - 云”協同調度

一、引言 在當今數字化浪潮席卷全球的背景下,工業領域正經歷著深刻變革。工業自動化作為制造業發展的基石,其技術架構的演進直接關系到生產效率、產品質量以及企業的市場競爭力。傳統的PLC(可編程邏輯控制器)架構雖然在工業控制領…

從版本控制到協同開發:深度解析 Git、SVN 及現代工具鏈

前言:在當今軟件開發的浪潮中,版本控制與協同開發無疑扮演著舉足輕重的角色。從最初的單兵作戰到如今大規模團隊的高效協作,一套成熟且得力的版本控制系統以及圍繞其構建的現代工具鏈,已然成為推動軟件項目穩步前行的關鍵引擎。今…

Visual Studio Code插件離線安裝指南:從市場獲取并手動部署

Visual Studio Code插件離線安裝指南:從市場獲取并手動部署 一、場景背景二、操作步驟詳解步驟1:訪問官方插件市場步驟2:定位目標版本步驟3:提取關鍵參數步驟4:構造下載鏈接步驟5:下載與安裝 三、注意事項 …

用HTML5實現實時ASCII藝術攝像頭

用HTML5實現實時ASCII藝術攝像頭 項目簡介 這是一個將攝像頭畫面實時轉換為ASCII字符藝術的Web應用,基于HTML5和原生JavaScript實現。通過本項目可以學習到: 瀏覽器攝像頭API的使用Canvas圖像處理技術實時視頻流處理復雜DOM操作性能優化技巧 功能亮點…

論文審稿之我對SCI寫作的思考

有幸被邀請審過二區、三區、四區期刊的論文,近期審稿10余篇,分享一下我從一個審稿人的角度出發,如何提升自己寫作的質量。 作圖高清和好看,永遠是排第一位。圖中的字要清晰,有的放大200%還看不清字;每幅圖的…

MLA:Transformer的智能變形金剛——解密多頭潛在注意力的進化密碼

第一章 MLA的進化之路:從MHA到智能變形 1.1 變形金剛的誕生背景 當LLM模型規模突破萬億參數量級時,傳統Transformer的注意力機制開始顯現"成長的煩惱":訓練階段計算密集、推理階段內存吃緊。DeepSeek團隊的MLA如同給注意力模塊裝…

電子電路:電學都有哪些核心概念?

電子是基本粒子,帶負電荷。電荷是物質的一種屬性,電子帶有負電荷,而質子帶有正電荷。電荷的單位是庫侖。 電流呢,應該是指電荷的流動,單位是安培,也就是庫侖每秒。所以電流其實就是電荷在導體中的移動形成的。比如,當電子在導線中流動時,就形成了電流。不過要注意,傳…

第三次中醫知識問答模型微調

本次參數 llamafactory-cli train \ --stage sft \ --do_train True \ --model_name_or_path /home/qhyz/zxy/LLaMA-Factory/model \ --preprocessing_num_workers 16 \ --finetuning_type lora \ --template deepseek3 \ --flash_attn fa2 \ --dataset_dir data \ --dataset …