Aller au contenu principal

Photogrammétrie

Construisez une carte AR Clip VPS à partir de photos prises avec un appareil reflex, un hybride ou un drone.

Prendre les photos​

  • Faites se chevaucher chaque photo avec la suivante de 70 à 80 %.
  • Prenez des vues à plusieurs hauteurs, et incluez des repères faciles à reconnaître.
  • Gardez la même exposition sur toute la série, et évitez le flou de bougé.
  • Facultatif : placez au sol des repères de contrôle de la taille d'un QR code environ, pour vérifier l'échelle.

Construire le nuage de points​

  1. Importez les photos dans Metashape, RealityCapture, Meshroom ou un autre outil de photogrammétrie.
  2. Lancez l'alignement, puis la reconstruction dense.
  3. Exportez le nuage de points en LAS, LAZ ou PLY, avec la couleur. Gardez une résolution de texture de 8K au maximum.

Envoyer le fichier avec Python​

Ce script suit le même parcours qu'arclip.design. Il demande un emplacement d'envoi, envoie le fichier LAS ou PLY, puis finalise la carte pour lancer le traitement.

# 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"] # create a personal token in 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_TOKEN est un jeton bearer. Créez-le dans Console → Settings → API tokens.
  • dataType et sourceFormat décrivent le fichier que vous envoyez.
  • Réglez publish sur True pour publier la carte dès la fin du traitement. Sinon, vérifiez-la d'abord 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"]) # e.g. PROCESSING → READY → PUBLISHED

Quand le statut est READY, ouvrez arclip.design → Maps → Preview pour vérifier la géométrie, la heatmap et les ancres. Si vous voyez des trous ou une géométrie inversée en miroir, relancez l'étape de photogrammétrie.


Suite : Scans LiDAR — construisez une carte à partir d'un LiDAR terrestre.