Photogrammetrie (DSLR / spiegellos)
Verwenden Sie diesen Workflow, wenn Sie Fotos mit einer DSLR, spiegellosen Kamera oder einer Drohne aufnehmen und daraus eine WebAR³ VPS Karte erzeugen möchten.
Aufnahmeempfehlungen
- Sorgen Sie für 70–80 % Überlappung zwischen aufeinanderfolgenden Bildern.
- Fotografieren Sie auf mehreren Höhen und nehmen Sie markante Landmarken auf.
- Halten Sie die Belichtung konsistent und vermeiden Sie Bewegungsunschärfe.
- Optional: Platzieren Sie QR-große Bodenmarken (Ground Control Points), um den Maßstab zu validieren.
Rekonstruktion
- Importieren Sie den Fotosatz in Metashape, RealityCapture, Meshroom oder Ihr bevorzugtes Photogrammetrie-Tool.
- Führen Sie Alignement und die dichte Rekonstruktion aus.
- Exportieren Sie das resultierende Punktwolkenmodell als LAS/LAZ/PLY inklusive Farbinformationen. Halten Sie Texturen handhabbar (≤ 8K).
Upload per Python REST API
Das folgende Snippet spiegelt den Ablauf in space.web-ar.studio wider: Upload-Slot anfordern, LAS/PLY streamen und den Job finalisieren, damit die Backend-Verarbeitung startet.
# upload_photogrammetry.py
from pathlib import Path
import os
import requests
API_BASE = "https://was-vps.web-ar.xyz/vps/api/v3"
TOKEN = os.environ["WEBAR3_TOKEN"] # persönlichen Token in space.web-ar.studio erzeugen
DATA_PATH = Path("outputs/cathedral.las")
headers = {"Authorization": f"Bearer {TOKEN}"}
payload = {
"name": "Altstadt",
"dataType": "point_cloud",
"sourceFormat": "las",
"coordinate": {"lat": 50.08746, "lon": 14.42125, "alt": 194.2}
}
init = requests.post(f"{API_BASE}/maps/import", json=payload, headers=headers)
init.raise_for_status()
info = init.json()
map_id, upload_url = info["mapId"], info["uploadUrl"]
with DATA_PATH.open("rb") as src:
put = requests.put(upload_url, data=src, headers={"Content-Type": "application/octet-stream"})
put.raise_for_status()
finalize = requests.post(
f"{API_BASE}/maps/{map_id}/finalize",
json={"publish": False},
headers=headers,
)
finalize.raise_for_status()
print(f"Map {map_id} in Warteschlange → Status: {finalize.json()['status']}")
WEBAR3_TOKENist ein persönlicher Bearer-Token (Console → Settings → API tokens).- Die Felder
dataTypeundsourceFormatteilen dem Backend mit, welche Pipeline verwendet werden soll. - Setzen Sie
publish=True, wenn die Karte nach der Verarbeitung automatisch veröffentlicht werden soll; ansonsten prüfen Sie sie zuerst in der Konsole.
Verarbeitung überwachen
import os
import requests
API_BASE = "https://was-vps.web-ar.xyz/vps/api/v3"
TOKEN = os.environ["WEBAR3_TOKEN"]
MAP_ID = "map_12345"
resp = requests.get(f"{API_BASE}/maps/{MAP_ID}", headers={"Authorization": f"Bearer {TOKEN}"})
resp.raise_for_status()
print(resp.json()["status"]) # PROCESSING → READY → PUBLISHED
Sobald der Status READY erreicht, öffnen Sie space.web-ar.studio → Maps → Preview, um Geometrie, Heatmap und Anker zu prüfen. Falls Lücken oder gespiegelt wirkende Bereiche auftauchen, wiederholen Sie die Photogrammetrie mit angepassten Parametern.