Photogrammétrie (reflex / hybride)
Utilisez ce flux quand vous photographiez avec un reflex, un hybride ou un drone et voulez en faire une carte AR Clip VPS.
Consignes de prise de vue
- Visez 70 à 80 % de recouvrement entre deux photos consécutives.
- Photographiez depuis plusieurs hauteurs et incluez des repères facilement reconnaissables.
- Gardez une exposition constante ; évitez le flou de bougé.
- Facultatif : posez des cibles de contrôle au sol, de la taille d'un QR code, pour valider l'échelle.
Reconstruction
- Importez le jeu de photos dans Metashape, RealityCapture, Meshroom ou votre suite de photogrammétrie préférée.
- Lancez l'alignement puis la reconstruction dense.
- Exportez le nuage de points obtenu en LAS/LAZ/PLY avec les attributs de couleur. Gardez une résolution de texture raisonnable (≤8K).
Envoi avec l'API REST Python
L'extrait ci-dessous reprend le flux d'arclip.design : demander un emplacement d'envoi, transmettre le fichier LAS/PLY en flux, puis finaliser la carte pour que le traitement côté serveur démarre.
# upload_photogrammetry.py
from pathlib import Path
import os
import requests
API_BASE = "https://api.arclip.app/vps/api/v3"
TOKEN = os.environ["ARCLIP_TOKEN"] # créez un jeton personnel dans arclip.design
DATA_PATH = Path("outputs/cathedral.las")
headers = {"Authorization": f"Bearer {TOKEN}"}
payload = {
"name": "Old Town Square",
"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()
upload_url = info["uploadUrl"]
map_id = info["mapId"]
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} queued → status: {finalize.json()['status']}")
ARCLIP_TOKENest un jeton bearer généré dans Console → Settings → API tokens.dataTypeetsourceFormatdécrivent le contenu pour que le back-end choisisse le bon pipeline.- Mettez
publishàTruesi vous voulez une publication automatique une fois le traitement terminé ; sinon, examinez d'abord la carte dans la Console.
Suivre le traitement
import os
import requests
API_BASE = "https://api.arclip.app/vps/api/v3"
TOKEN = os.environ["ARCLIP_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"]) # p. ex. PROCESSING → READY → PUBLISHED
Dès que le statut passe à READY, ouvrez arclip.design → Maps → Preview pour inspecter la
géométrie, la carte de chaleur et les ancres. Relancez l'étape de photogrammétrie si vous voyez des
trous ou une géométrie inversée.