main.py
Python 3 · Pyodide本機執行 · Ctrl + Enter 執行

執行結果

正在載入 Python…
執行程式後,結果會顯示在這裡。

PYTHON · GIS · DATA

不用安裝,在瀏覽器直接執行 Python

這個線上 Python 編輯器使用 Pyodide,讓 Python 在你的瀏覽器中執行。選擇範例、修改程式,按「執行」或使用 Ctrl + Enter,即可立即查看輸出;不必安裝 Python 或建立帳號。

範例:計算平面座標距離

以下程式用 Python 標準函式庫 math 計算兩點間的直線距離,適合快速驗證座標或學習函式呼叫:

from math import hypot

point_a = (0, 0)
point_b = (3, 4)
distance = hypot(point_b[0] - point_a[0], point_b[1] - point_a[1])
print(distance)  # 5.0

程式碼會上傳嗎?

程式碼在目前瀏覽器編輯並執行,會保存在該瀏覽器的本機儲存空間,不會傳送到 GeoLab 網站。首次載入 Python 執行環境或套件時,瀏覽器仍需連線下載相關資源。

可以使用 NumPy 或 GIS 套件嗎?

NumPy 等 Pyodide 支援的套件可在瀏覽器使用。依賴作業系統、原生擴充或大型資料檔的套件(例如部分 GeoPandas 工作流程)可能無法直接執行;可先用範例確認相容性。

什麼時候適合用線上 Python?

適合初學者練習語法、執行短程式、測試 NumPy 計算和驗證座標公式。長時間運算、大型資料處理或需要完整桌面 GIS 套件時,建議使用本機 Python 環境。

可直接執行的範例

Python 範例:從語法練習到座標與資料處理

選擇左側案例即可載入編輯器。以下程式也可直接閱讀與複製;需要 NumPy 的範例會在執行時由 Pyodide 載入套件。

Python 入門

Python 入門:輸出文字與字串格式化

用 print() 顯示文字,並以 f-string 將變數放進訊息。

name = "SpatialGeoLab"
print(f"Hello, {name}!")
print("Python 正在你的瀏覽器裡執行。")

Python 清單與 for 迴圈範例

使用 list 保存多個城市名稱,再用 enumerate() 逐筆列出索引與內容。

cities = ["台北", "台中", "高雄"]

for index, city in enumerate(cities, start=1):
    print(f"{index}. {city}")

Python 函式範例:攝氏轉華氏

將換算公式包在函式中,之後可以帶入不同溫度重複使用。

def celsius_to_fahrenheit(celsius):
    return celsius * 9 / 5 + 32

for temperature in [0, 20, 30]:
    print(f"{temperature}°C = {celsius_to_fahrenheit(temperature):.1f}°F")

座標與地理計算

Python 計算兩個經緯度之間的距離

Haversine 公式可估算地球表面兩個經緯度點的球面距離;輸入座標順序為緯度、經度,結果以公里表示。

from math import asin, cos, radians, sin, sqrt

taipei = (25.0330, 121.5654)
kaohsiung = (22.6273, 120.3014)
lat1, lon1 = map(radians, taipei)
lat2, lon2 = map(radians, kaohsiung)
dlat, dlon = lat2 - lat1, lon2 - lon1
a = sin(dlat / 2) ** 2 + cos(lat1) * cos(lat2) * sin(dlon / 2) ** 2
distance_km = 6371 * 2 * asin(sqrt(a))
print(f"球面距離:約 {distance_km:.1f} 公里")

Python 多邊形面積:鞋帶公式

鞋帶公式適用於平面直角座標。若座標來自經緯度,請先投影到合適的平面座標系,再解讀面積單位。

points = [(0, 0), (4, 0), (4, 3), (0, 3)]

twice_area = sum(
    x1 * y2 - x2 * y1
    for (x1, y1), (x2, y2) in zip(points, points[1:] + points[:1])
)
area = abs(twice_area) / 2
print(f"多邊形面積:{area} 平方座標單位")

資料處理

NumPy 座標陣列與平均值計算

NumPy 適合處理數值陣列。這個例子以經度、緯度兩欄建立座標資料,並計算各欄的算術平均。

import numpy as np

coordinates = np.array([
    [121.5654, 25.0330],
    [120.3014, 22.6273],
])
print("座標陣列:")
print(coordinates)
print("經度、緯度平均值:", coordinates.mean(axis=0))

Python 讀取 CSV:整理欄位與加總

csv.DictReader 會依欄位名稱讀取每一列,不需額外安裝套件;實務上可將 StringIO 換成檔案物件。

import csv
from io import StringIO

csv_text = "city,count\n台北,3\n台中,2\n高雄,4"
rows = csv.DictReader(StringIO(csv_text))
total = 0
for row in rows:
    total += int(row["count"])
    print(f"{row['city']}:{row['count']} 筆")
print(f"總筆數:{total}")