跳至主要内容

不需要 SQL 就可以探索 Overture 資料

· 閱讀時間約 4 分鐘

Overture 推出了新的基於瀏覽器的工具,為使用者提供了無需代碼即可與我們資料互動的選項。Explore 網站現在是開始使用 Overture 的最快途徑,不需要 SQL:https://explore.overturemaps.org

探索費城
查看費城 Rittenhouse 公園的 "Lion Crushing a Serpent"

這不是地圖

Explore 工具看起來可能像是地圖,但我們更願意將其視為一種 X 光資料檢查器。我們放棄了製作製圖決策,而是選擇一次性顯示 Overture 的所有主題:地址、基礎資料、建築、區域、地點和交通。我們的使用者有不同的視角和目標,我們希望提供盡可能多的訊息。我們還希望激發您的好奇心,並激勵您對 Overture 資料提出新的問題。

一次性看到所有資料可能會讓人感到有些不知所措。我們建議放大到您感興趣的區域,懸停在地圖左上角的圖層圖標上,並切換資料主題的顯示與隱藏。您可以點擊個別地圖功能,例如著名的 "Lion Crushing a Serpent" 雕像,以檢查其屬性。想要下載資料嗎?在 Explore 網站的右上角,您可以點擊“下載可見”按鈕,以生成包含瀏覽器中所有可見資料的 GeoJSON 檔案。

Explore 網站 目前處於測試階段,您的反饋將幫助我們在未來幾個月內添加更多功能。如果您對資料有任何疑問,或想報告資料質量問題或網站故障,請點擊錯誤圖標並在 GitHub 上提交問題。(注意:我們正在積極解決已知的下載資料問題。)

與我們一起開發

該項目源自參與 Overture 開發的工程師們豐富的經驗和技能。我們使用 WebAssembly 和 Rust,特別是使用 geoarrow-rs 查詢和下載 Overture 的 GeoParquet 檔案。前端使用 React 和 Maplibre,我們產生 PMTiles 來視覺化資料。這是一個無伺服器網站,使用 cloud-native 存儲格式。我們還計劃在每次 Overture 發佈時提供 PMTiles。特別感謝來自 Development Seed 的 Kyle Barron 和來自 Protomaps 的 Brandon Liu,與 Overture 的開發者宣傳團隊合作開始了這個項目。

Explore 是開源的,基於 MIT 許可,我們歡迎 Overture 社區的貢獻。我們的目標是為您提供構建圍繞 Overture 資料的工具的基本構建模組。告訴我們您的創作,我們將樂於在我們的社區項目頁面上分享。

土地植被狀況即時更新

· 閱讀時間約 4 分鐘

land cover gif

製圖師們的福音!

Overture Maps 的 5 月發佈 包括了新的高解析度土地植被資料以及新的製圖架構屬性。

我們的 land_cover 圖層是從歐洲太空總署 2020 年 WorldCover (10m) 光柵資料衍生的向量資料。它類似於 Daylight 地圖分發中的土地植被層,但 Overture Maps 添加了更高解析度的資料(縮放級別 15),提供了更多細節和土地植被類別。新的資料中包含 10 種子類型:雪地、森林、城市、草地、農作物、荒漠、濕地、苔蘚、紅樹林和灌木。

我們的 5 月發佈還包括了架構屬性,為製圖時最佳使用 Overture Maps 資料提供製圖“提示”。我們添加了 min_zoommax_zoom,以使用常見的“滑動地圖”縮放級別規範來定義每個解析度土地植被的推薦縮放級別。這是改善製圖師使用者體驗的第一步,我們計劃在未來的 Overture Maps 資料發佈中擴展這些屬性。

探索土地植被

在下面的範例中,將展示如何使用 lonboardOverture Maps Python Command-line Tool 提取、處理和視覺化感興趣區域的土地植被資料。我們建議您查閱 lonboard 文檔中的這個範例,以更好地理解此處使用的方法。您可以在 Notebook Sharing Space 查看和下載完整的 Jupyter Notebook。

land cover

要跟隨這些步驟,您需要執行 JupyterLab 或 Jupyter Notebook 並安裝以下必要套件:

import pandas as pd
import geopandas as gpd
import overturemaps
from shapely import wkb
from lonboard import Map, PolygonLayer
from lonboard.colormap import apply_categorical_cmap
# specify bounding box
bbox = -78.6429, 39.463, -73.7806, 41.6242
# read in Overture Maps land_cover data type
table = overturemaps.record_batch_reader("land_cover", bbox).read_all()
table = table.combine_chunks()
# convert to dataframe
df = table.to_pandas()
# filter for higher resolution land_cover features
df_h = df[df.cartography.apply(lambda x: x['min_zoom'] == 8)]
# create color map for land_cover subtypes, loosely based on natural-color palette: https://www.shadedrelief.com/shelton/c.html
color_map = {
"urban": [167, 162, 186],
"forest": [134, 178, 137],
"barren": [245, 237, 213],
"shrub": [239, 218, 182],
"grass": [254, 239, 173],
"crop": [222, 223, 154],
"wetland": [158, 207, 195],
"mangrove": [83, 171, 128],
"moss": [250, 230, 160],
"snow": [255, 255, 255],
}
# apply color map to land_cover subtypes
colors = apply_categorical_cmap(df_h.subtype, color_map)
# dataframe to geodataframe, set crs
gdf = gpd.GeoDataFrame(
df_h,
geometry=df_h['geometry'].apply(wkb.loads),
crs="EPSG:4326"
)
# create map layer 
layer = PolygonLayer.from_geopandas(
gdf= gdf[['id','subtype', 'cartography', 'geometry']].reset_index(drop=True),
get_fill_color=colors,
get_line_color=colors,
)
#render map
view_state = {
"longitude": -76.2,
"latitude": 39.6,
"zoom": 8,
"pitch": 65,
"bearing": 5,
}
m = Map(layer, view_state=view_state)
m

探索我們的公開測試版

· 閱讀時間約 5 分鐘

上週,Overture Maps 宣布了我們的模式和資料的測試版釋出。經過數月的努力和穩定改進,我們即將達到生產級穩定性。在接下來的幾週內,我們將發佈一系列文章——從這篇開始——深入介紹此次釋出中的亮點和改進。

加快地理空間處理

你會首先注意到,我們 從雲端提取 Overture Maps 資料的速度變得更快。我們通過與開源協作者密切合作,對我們的 GeoParquet 檔案進行了再分區和 空間優化。同時,我們的朋友 DuckDB,這是我們最喜愛的 SQL 工具之一,新增了一個功能,提升了帶 bounding box 查詢的效能。

Query speeds have improved significantly from our February release to the April beta release. This example compares DuckDB queries for buildings in Philadelphia. See here for more information about our performance testing.
SELECT 
*
FROM
read_parquet('s3://overturemaps-us-west-2/release/2024-02-15-alpha.0/theme=buildings/type=building/*', filename=true, hive_partitioning=1)
WHERE
bbox.minx > -75.60154
AND bbox.maxx < -74.955763
AND bbox.miny > 39.867004
AND bbox.maxy < 40.137992;

820,915 buildings
~120s

我們正在與 Development Seed 的成員一起繼續為使用者提供更快更簡便的體驗,Development Seed也是 Overture Maps Foundation 的成員,我們正在 基於 lonboard 開發針對 Overture Maps 資料的特殊工具,這是他們用於在 Jupyter 中視覺化大型地理空間資料集的 Python 含式庫。最近,我們的朋友 Wherobots 全面了解了 我們如何使用 GeoParquet 使得 Apache Sedona 查詢和分析資料變得非常高效。

正如你所見,我們正在與社群一起推進,對資料、軟體和規範進行迭代,並以提升地理空間 速度 為共同目標。

更易用的模式

測試版釋出的另一個亮點是轉向更易用的行政邊界資料模式。我們在二月份首先 與 Overture Maps 社群探討了這個想法,經過短短兩個月的工作, 新的分區模式和資料 現已準備就緒。以下是查詢 divisions 的一個例子,該查詢抓取了全球所有國家的幾何訊息:

SELECT *
FROM read_parquet('s3://overturemaps-us-west-2/release/2024-04-16-beta.0/theme=divisions/type=division_area/*', filename=true, hive_partitioning=1)
WHERE subtype = 'country';

您可以注意到 divisions 查詢比對 admins 的相應查詢要簡單得多:

WITH admins AS (
SELECT *
FROM read_parquet('s3://overturemaps-us-west-2/release/2024-04-16-beta.0/theme=admins/type=*/*', filename=true, hive_partitioning=1)
)

SELECT *
FROM admins country_locality
JOIN admins country_area
ON country_area.locality_id = country_locality.id
WHERE country_locality.locality_type = 'country';

我們計劃在七月的版本中 棄用 admins。在此期間,adminsdivisions 將同時提供給使用者使用。

橋樑、島嶼、瀑布等等!

在此次釋出中,我們在 base 層中增加了更多豐富的細節,包括來自 Facebook Daylight 地圖分發 的熟悉特徵的 infrastructure 類型。我們還為 landland_usewater 特徵類型新增了子類型和類別。你可以在我們的 模式參考文檔 中找到每個特徵類型的子類型和類別的詳細列表。準備好製作自己的地圖了嗎?我們有一個 教學幫助你入門

請繼續關注更多焦點

我們不久後就會再發佈更多從測試版釋出到生產過程中的文章。在這段時間,我們邀請你 開始使用我們的資料 並與我們分享你的 評論和意見

歡迎!

· 閱讀時間約 1 分鐘

歡迎來到 Overture Maps 工程部落格!