“詳規一張圖”——新加坡土地利用數據

在城市規劃和土地管理領域,精確且詳盡的空間數據是進行有效決策的基石。隨著地理信息系統(GIS)技術的發展,我們能夠以前所未有的精度和細節來捕捉、分析和展示土地利用信息。這不僅提升了數據的質量和可靠性,還使得城市規劃者能夠更深入地理解城市的結構和動態變化。通過GIS技術的應用,復雜的地理空間數據可以被轉化為易于理解和操作的信息,從而支持更加科學合理的城市規劃和管理決策。

新加坡的用地統計數據不僅提供了一個全面的視角,讓我們得以深入了解這座國際化都市的土地使用現狀及其變化趨勢,而且也為未來城市發展的預測和規劃提供了堅實的數據支持。新加坡作為一個高度發達的城市國家,其土地管理和城市規劃一直走在世界前列。政府通過嚴格的土地用途管制和高效的基礎設施建設,確保了城市的可持續發展和居民的生活質量。

新加坡用地規劃官網:URA SPACE

我們參考HTML網頁信息的GET獲取方法,先看3個關鍵部分標頭、負載、?預覽;

標頭:通常包括URL的連接,也就是目標資源的位置,可以了解網頁使用的是GET請求方法;

負載:對于GET請求:負載通常包含了傳遞的參數,這里我們可以看到它的傳參包括,當前位置坐標,使用的坐標系EPSG:4326;

預覽:指的是對響應內容的快速查看或摘要顯示,我們可以看到當前地塊的標簽信息,和geometry的幾何多邊形信息;

這里有一個細節需要注意一下,因為我們的獲取方法是以創建網格點進行遍歷,所有這里要考慮新加坡的最大和最小坐標的邊界,另外這里的坐標系是Web墨卡托投影(EPSG:3857);

接下來就是數據獲取部分,先講一下方法思路,一共三個步驟;

方法思路

  1. 以約10m為間隔(0.0001度)創建網格點,這些網格點將覆蓋整個新加坡區域;
  2. 遍歷每個網格點,構建API請求URL,發送HTTP請求獲取該區域的土地用途數據;
  3. 提取每個地塊的屬性信息,提取幾何信息,將處理后的數據轉換為GeoDataFrame格式,存為shp文件;

第一步:我們先找到對應數據存儲位置,獲取所有地塊的屬性信息,經過測試,每次查詢一個地塊會對應一個html,我們通過修改坐標位置來進行數據獲取;

第二步:以約10m為間隔(0.0001度)創建網格點,利用GET請求獲取所有網格對應地塊信息,并根據標簽進行保存,另存為shp,tips如果對精度有進一步要求可以修改grid_size = 0.0001 這個參數;

完整代碼#運行環境 Python 3.11

import requests
import geopandas as gpd
from shapely.geometry import Polygon
import math
from pyproj import Transformer# 定義坐標轉換器
transformer = Transformer.from_crs("EPSG:3857", "EPSG:4326", always_xy=True)# 新加坡邊界(Web墨卡托投影)
xmin, ymin = 11532510.446400002, 127973.29659999907
xmax, ymax = 11622551.8041, 166493.53660000116# 轉換為WGS84坐標
lon_min, lat_min = transformer.transform(xmin, ymin)
lon_max, lat_max = transformer.transform(xmax, ymax)# 定義網格大小(度)
grid_size = 0.0001  # 約10m# 創建網格點
lons = []
lats = []
current_lon = lon_min
while current_lon < lon_max:current_lat = lat_minwhile current_lat < lat_max:lons.append(current_lon)lats.append(current_lat)current_lat += grid_sizecurrent_lon += grid_size# 存儲所有特征
all_features = []
all_geometries = []# 遍歷每個網格點
for lon, lat in zip(lons, lats):url = f"https://maps.ura.gov.sg/arcgis/rest/services/MP19/Landuse_gaz/MapServer/46/query?returnGeometry=true&where=1%3D1&outSR=4326&outFields=*&inSr=4326&geometry=%7B%22x%22%3A{lon}%2C%22y%22%3A{lat}%2C%22spatialReference%22%3A%7B%22wkid%22%3A4326%7D%7D&geometryType=esriGeometryPoint&spatialRel=esriSpatialRelWithin&f=json"headers = {'User-Agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Mobile Safari/537.36 Edg/137.0.0.0'}try:response = requests.get(url, headers=headers)if response.status_code == 200:data = response.json()for feature in data['features']:attributes = feature['attributes']geometry = feature['geometry']['rings'][0]polygon = Polygon(geometry)# 檢查是否已經存在相同的OBJECTIDif not any(f['OBJECTID'] == attributes['OBJECTID'] for f in all_features):all_features.append({'OBJECTID': attributes['OBJECTID'],'LU_DESC': attributes['LU_DESC'],'LU_DT_DESC': attributes['LU_DT_DESC'],'GPR_NUM': attributes['GPR_NUM'],'PARCEL_ID': attributes['PARCEL_ID'],'REGION_N': attributes['REGION_N'],'PLN_AREA_N': attributes['PLN_AREA_N'],'SUBZONE_N': attributes['SUBZONE_N']})all_geometries.append(polygon)print(f"Processed point: {lon}, {lat}")except Exception as e:print(f"Error processing point {lon}, {lat}: {str(e)}")continue# 創建GeoDataFrame
gdf = gpd.GeoDataFrame(all_features, geometry=all_geometries, crs='EPSG:4326')# 保存到shapefile
gdf.to_file("singapore_land_use.shp")print("Shapefile saved successfully.")

腳本執行結束,我們會得到一個文件名為lsingapore_land_use的shp圖層,獲取數據標簽如下,LU_DESC(土地用途描述)、LU_DT_DESC(詳細土地用途描述)、GPR(總容積率)、PARCEL_ID(地塊ID) 、REGION_N(區域名稱)、PLN_AREA_N(規劃區域名稱)、SUBZONE_N(分區名稱)、SUBZONE_NO(分區編號)、SHAPE_Area(地塊面積)、SHAPE_Length(地塊周長),其他一些非關鍵標簽,這里省略;

第三步:提取每個地塊的屬性信息,提取幾何信息,將處理后的數據轉換為GeoDataFrame格式,存為shp文件,將數據導入ArcGIS進行可視化;

通過上述步驟,我們成功地從新加坡的土地利用統計數據中提取了詳細的空間數據,并將其轉換為shp格式。這些數據不僅涵蓋了土地用途描述、詳細土地用途描述、總容積率、地塊ID、區域名稱、規劃區域名稱和分區名稱等關鍵信息,還包含了幾何形狀信息,使得我們可以進行進一步的空間分析和可視化,生成的shp文件可以導入到ArcGIS或其他GIS軟件中進行詳細的分析和展示。這為我們提供了寶貴的數據支持,有助于城市規劃者更好地理解新加坡的土地使用現狀及其變化趨勢,從而制定更加科學合理的未來城市發展計劃。

文章僅用于分享個人學習成果與個人存檔之用,分享知識,如有侵權,請聯系作者進行刪除。所有信息均基于作者的個人理解和經驗,不代表任何官方立場或權威解讀。

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

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

相關文章

LabVIEW雙光子成像系統技術

雙光子成像技術的核心特性 雙光子成像通過雙低能量光子協同激發機制&#xff0c;展現出顯著的技術優勢&#xff1a; 深層組織穿透能力&#xff1a;適用于活體組織深度成像 高分辨率觀測性能&#xff1a;滿足微觀結構的精細研究需求 低光毒性特點&#xff1a;減少對樣本的損傷…

MySQL自定義函數零基礎學習教程

1. 引言 想象一下&#xff0c;你在用計算器做數學題。每次計算"圓形面積"時&#xff0c;你都要輸入&#xff1a;3.14 半徑 半徑。如果能把這個計算步驟保存起來&#xff0c;下次只要輸入半徑就自動算出面積&#xff0c;那該多方便&#xff01; MySQL自定義函數就…

八股---7.JVM

1. JVM組成 1.1 JVM由哪些部分組成?運行流程? 難易程度:☆☆☆ 出現頻率:☆☆☆☆ Java Virtual Machine:Java 虛擬機,Java程序的運行環境(java二進制字節碼的運行環境)好處:一次編寫,到處運行;自動內存管理,垃圾回收機制程序運行之前,需要先通過編譯器將…

企業級AI-DevOps工具鏈的構成及實現方案

企業級AI-DevOps工具鏈的構成及實現方案 DevOps在AI大模型研發中的重要性及應用背景一、場景驅動的AI產品研發運營機制二、AI-DevOps生產線建設三、基于DevOps的AI大模型研發機制四、基于DevOps的智能體場景研發機制五、場景驅動的應用評估分析機制 DevOps在AI大模型研發中的重…

在 Spring Boot 項目里,MYSQL中json類型字段使用

前言&#xff1a; 因為程序特殊需求導致&#xff0c;需要mysql數據庫存儲json類型數據&#xff0c;因此記錄一下使用流程 1.java實體中新增字段 private List<User> users 2.增加mybatis-plus注解 TableField(typeHandler FastjsonTypeHandler.class) private Lis…

Python競賽環境搭建全攻略

Python環境搭建競賽技術文章大綱 競賽背景與意義 競賽的目的與價值Python在競賽中的應用場景環境搭建對競賽效率的影響 競賽環境需求分析 常見競賽類型&#xff08;算法、數據分析、機器學習等&#xff09;不同競賽對Python版本及庫的要求硬件與操作系統的兼容性問題 Pyth…

在 Win10 上 WSL 安裝 Debian 12 后,Linux 如何啟動 SMTP 服務?

在 WSL 的 Debian 12 中啟動 SMTP 服務&#xff08;以 Postfix 為例&#xff09;&#xff0c;請按以下步驟操作&#xff1a; 1. 安裝 Postfix sudo apt update sudo apt install postfix mailutils安裝過程中會彈出配置窗口&#xff1a; General type of mail configuration&a…

樹莓派超全系列教程文檔--(59)樹莓派攝像頭rpicam-apps

這里寫目錄標題 rpicam-apps libcamera 文章來源&#xff1a; http://raspberry.dns8844.cn/documentation 原文網址 rpicam-apps 樹莓派操作系統 Bookworm 將相機捕捉應用程序從 libcamera-\* 重命名為 rpicam-*。符號鏈接允許用戶暫時使用舊名稱。盡快采用新的應用程序名稱…

【數據結構】圖論最短路徑算法深度解析:從BFS基礎到全算法綜述?

最短路徑 導讀一、最短路徑1.1 單源最短路徑1.2 各頂點間的最短路徑1.3 最短路徑算法 二、BFS算法結語內容回顧下一篇預告&#xff1a;挑戰帶權最短路徑&#xff01; 導讀 大家好&#xff0c;很高興又和大家見面啦&#xff01;&#xff01;&#xff01; 歡迎繼續探索圖算法的…

中國政務數據安全建設細化及市場需求分析

(基于新《政務數據共享條例》及相關法規) 一、引言 近年來,中國政府高度重視數字政府建設和數據要素市場化配置改革。《政務數據共享條例》(以下簡稱“《共享條例》”)的發布,與《中華人民共和國數據安全法》(以下簡稱“《數據安全法》”)、《中華人民共和國個人信息…

Linux信號保存與處理機制詳解

Linux信號的保存與處理涉及多個關鍵機制&#xff0c;以下是詳細的總結&#xff1a; 1. 信號的保存 進程描述符&#xff08;task_struct&#xff09;&#xff1a;每個進程的PCB中包含信號相關信息。 pending信號集&#xff1a;記錄已到達但未處理的信號&#xff08;未決信號&a…

【Redis】筆記|第10節|京東HotKey實現多級緩存架構

緩存架構 京東HotKey架構 代碼結構 代碼詳情 功能點&#xff1a;&#xff08;如代碼有錯誤&#xff0c;歡迎討論糾正&#xff09; 多級緩存&#xff0c;先查HotKey緩存&#xff0c;再查Redis&#xff0c;最后才查數據庫熱點數據重建邏輯使用分布式鎖&#xff0c;二次查詢更新…

php apache構建 Web 服務器

虛擬機配置流程winsever2016配置Apache、Mysql、php_windows server 2016配置web服務器-CSDN博客 PHP 和 Apache 通過 ??模塊化協作?? 共同構建 Web 服務器&#xff0c;以下是它們的交互機制和工作流程&#xff1a; ??一、核心組件分工?? 組件角色??Apache??Web …

二分查找排序講解

一、二分查找&#xff08;Binary Search&#xff09; 核心思想&#xff1a; 前提&#xff1a;數組必須是 有序的&#xff08;比如從小到大排列&#xff09;。目標&#xff1a;在數組中快速找到某個數&#xff08;比如找 7&#xff09;。方法&#xff1a;每次排除一半的數&…

【Redis實戰:緩存與消息隊列的應用】

在現代互聯網開發中&#xff0c;Redis 作為一款高性能的內存數據庫&#xff0c;廣泛應用于緩存和消息隊列等場景。本文將深入探討 Redis 在這兩個領域的應用&#xff0c;并通過代碼示例比較兩個流行的框架&#xff08;Redis 和 RabbitMQ&#xff09;的特點與適用場景&#xff0…

[拓撲優化] 1.概述

常見的拓撲優化方法有&#xff1a;均勻化法、變密度法、漸進結構優化法、水平集法、移動可變形組件法等。 常見的數值計算方法有&#xff1a;有限元法、有限差分法、邊界元法、離散元法、無網格法、擴展有限元法、等幾何分析等。 將上述數值計算方法與拓撲優化方法結合&#…

【openssl】升級為3.3.1,避免安全漏洞

本文檔旨在形成 對Linux系統openssl版本進行升級 的搭建標準操作過程&#xff0c;搭建完成后&#xff0c;實現 openssl 達到3.3以上版本&#xff0c;避免安全漏洞 效果。 一、查看當前版本 版本不高于3.1的&#xff0c;均需要升級。 # 服務器上運行以下命令&#xff0c;查看…

基于正點原子阿波羅F429開發板的LWIP應用(6)——SNTP功能和lwiperf測速

說在開頭 正點原子F429開發板主芯片采用的是STM32F429IGT6&#xff0c;網絡PHY芯片采用的是LAN8720A(V1)和YT8512C(V2)&#xff0c;采用的是RMII連接&#xff0c;PHY_ADDR為0&#xff1b;在代碼中將會對不同的芯片做出適配。 CubeMX版本&#xff1a;6.6.1&#xff1b; F4芯片組…

C:\Users\中文名修改為英文名

C:\Users\中文名修改為英文名 背景操作步驟 背景 買了臺新電腦&#xff0c;初始化好不知道啥操作把自己的登錄用戶名改成了中文&#xff0c;有些安裝的軟件看見有中文直接就水土不服了。 操作步驟 以下稱中文用戶名為張三。 正常登錄張三用戶 進入用戶管理頁面修改用戶名&a…

YOLOv12環境配置,手把手教你使用YOLOv12訓練自己的數據集和推理(附YOLOv12網絡結構圖),全文最詳細教程

文章目錄 前言一、YOLOv12代碼下載地址1.YOLOv12模型結構圖 二、YOLO環境配置教程1.創建虛擬環境2.激活虛擬環境3.查詢自己電腦可支持最高cuda版本是多少&#xff08;無顯卡的同學可以跳過這個步驟&#xff09;4.pytorch安裝5.驗證 PyTorch GPU 是否可用&#xff08;沒有顯卡的…