Photogrammetry Web API

Overview

OpenScanCloud

Photogrammetry Web API

Overview / Outline:

The OpenScan Cloud is intended to be a decentralized, open and free photogrammetry web API.

The API can be used as a great addition to existing photogrammetry rigs like the OpenScan Mini or Classic but also any other rig. The only things needed to start a reconstruction are a user-specific (or public) token and of course an image set (preferably as a zip file).

I would also like to create a Desktop uploader, so that users can choose an image set, which then gets uploaded. As I have no experience with creating a Desktop GUI (besides node-red-dashboard ;)) I would highly appreciate any help on that part.

Current functionality / http endpoints

Please feel free to add your thoughts on the design. Currently I implemented the following http endpoints:

  • /createProject(token, project, photos, parts, filesize)

Calling this endpoint will initialize a project of a given project name, consisting of a certain number of photos, split into x parts and having a total filesize. If a project is larger then 200Mb it needs to be split into several parts as this is the current upload endpoints filesize limit.

If successful it will return statuscode 200 + {'status':'created', 'ulink':[list of uploadlinks], 'credit':credit_used} , where the uploadlinks are valid for 4 hours.

  • /startProject(token, project)

Once a project is created and all part(s) are successfully uploaded, it is necessary to initialize the processing of the image set by calling this endpoint, which will return {'status':'started'}

  • /getProjectInfo(token, project)

Calling this endpoint will return {'dlink':downloadlink, 'status':status, 'ulink':uploadlinks}.

  • /getTokenInfo(token)

Will return credit, limit_filesize and limit_photos for the given token.

Token and credit system

Credit

Credit will be used to monitor the overall usage of processing ressources. The credit value is bound to each token.

Tokens

  • Public Token There will be a public token, with a certain amount of credit per time (e.g. 10 GB per day or so). People using this token won't have access to additional features like auto-email when the reconstruction is done + individual support. Furthermore the data submitted through this token will be used for further research and improvement of the processing engine (and future features of OpenScan). In case of high loads on the server side, sets created with private tokens might be prioritized (at some point in the future)

  • Private Token This token is bound to an individual and certain details (forename and surname and email address) in order to allow additional features, like email alerts and individual support.

Discussion

Please feel free to share your thoughts and let me know if you need any additional information.

I will add a working python example soon :)

You might also like...
An API wrapper for the file.io web service.

🗃️ File.io An API wrapper for the file.io web service. Install $ pip3 install fileio or

Spotify Web API client for Python 3
Spotify Web API client for Python 3

Welcome to the GitHub repository of Tekore! We provide a client for the Spotify Web API for Python, complete with all available endpoints and authenti

SpamSMS - SPAM SMS menggunakan api web INDIHOME

SPAM SMS Unlimited SPAM SMS menggunakan api web INDIHOME Cara Install Di Termux

An interactive App to play with Spotify data, both from the Spotify Web API and from CSV datasets.

An interactive App to play with Spotify data, both from the Spotify Web API and from CSV datasets.

A Python script to create customised Spotify playlists using the JSON, Spotipy Library and Spotify Web API, based on seed tracks in your history.

A Python script to create customised Spotify playlists using the JSON, Spotipy Library and Spotify Web API, based on seed tracks in your history.

Official python API for Phish.AI public and private API to detect zero-day phishing websites

phish-ai-api Summary Official python API for Phish.AI public and private API to detect zero-day phishing websites How it Works (TLDR) Essentially we h

PRAW, an acronym for "Python Reddit API Wrapper", is a python package that allows for simple access to Reddit's API.

PRAW: The Python Reddit API Wrapper PRAW, an acronym for "Python Reddit API Wrapper", is a Python package that allows for simple access to Reddit's AP

Python API wrapper around Trello's API

A wrapper around the Trello API written in Python. Each Trello object is represented by a corresponding Python object. The attributes of these objects

PRAW, an acronym for "Python Reddit API Wrapper", is a python package that allows for simple access to Reddit's API.

PRAW: The Python Reddit API Wrapper PRAW, an acronym for "Python Reddit API Wrapper", is a Python package that allows for simple access to Reddit's AP

Comments
  • Executing getting Error About

    Executing getting Error About "Unterminated quoted string"

    OS: Ubuntu 20.04 LTS (LXC) Python 3.8.10

    Terminal Output:

    Dev:~/dev/OpenScanCloud/uploader$ python3 uploader.py
    verifying token
    preparing imageset
    zipping images
    projectname: 163211023836-OSC.zip
    preparing project on the OpenScanCloud server
    uploading part 1 of 4
    sh: 1: Syntax error: Unterminated quoted string
    uploading part 2 of 4
    sh: 1: Syntax error: Unterminated quoted string
    uploading part 3 of 4
    sh: 1: Syntax error: Unterminated quoted string
    uploading part 4 of 4
    sh: 1: Syntax error: Unterminated quoted string
    starting project
    ERROR: could not start processing
    processing started ... you will get an email soon
    thank you for testing OpenScanCloud
    

    Only Modified Area In Uploader.py file:

    ################ That's all you need to change : ###################
    
    dir_images = './images/' # enter the directory of your images
    dir_temp = './temp/' # enter your temporary directory
    token = 'TOP-SECRET-TOKEN-WAS-HERE'# enter your token (send me a mail to [email protected] with your forename and surname to get a free token)
    
    ################ No need to change anything below ##################
    

    Files:

    01.jpg    03_A.jpg  05_B.jpg  07_C.jpg  10.jpg    12_A.jpg  14_B.jpg  16_C.jpg  19.jpg    21_A.jpg  23_B.jpg
    01_A.jpg  03_B.jpg  05_C.jpg  08.jpg    10_A.jpg  12_B.jpg  14_C.jpg  17.jpg    19_A.jpg  21_B.jpg  23_C.jpg
    01_B.jpg  03_C.jpg  06.jpg    08_A.jpg  10_B.jpg  12_C.jpg  15.jpg    17_A.jpg  19_B.jpg  21_C.jpg  24.jpg
    01_C.jpg  04.jpg    06_A.jpg  08_B.jpg  10_C.jpg  13.jpg    15_A.jpg  17_B.jpg  19_C.jpg  22.jpg    24_A.jpg
    02.jpg    04_A.jpg  06_B.jpg  08_C.jpg  11.jpg    13_A.jpg  15_B.jpg  17_C.jpg  20.jpg    22_A.jpg  24_B.jpg
    02_A.jpg  04_B.jpg  06_C.jpg  09.jpg    11_A.jpg  13_B.jpg  15_C.jpg  18.jpg    20_A.jpg  22_B.jpg  24_C.jpg
    02_B.jpg  04_C.jpg  07.jpg    09_A.jpg  11_B.jpg  13_C.jpg  16.jpg    18_A.jpg  20_B.jpg  22_C.jpg
    02_C.jpg  05.jpg    07_A.jpg  09_B.jpg  11_C.jpg  14.jpg    16_A.jpg  18_B.jpg  20_C.jpg  23.jpg
    03.jpg    05_A.jpg  07_B.jpg  09_C.jpg  12.jpg    14_A.jpg  16_B.jpg  18_C.jpg  21.jpg    23_A.jpg
    
    opened by doughnet 2
  • No download link provided through the REST API /getProjectInfo endpoint

    No download link provided through the REST API /getProjectInfo endpoint

    Seems that there is no download link in the dlink property even through the documentation says there should be. I received my generated 3D model via email, and the /getProjectInfo endpoint provides a 200 OK response status code with "processing done" in the status body.

    I received: status: 200 body: {"dlink":"","status":"processing done","ulink":["-myuploadlink-"]}

    opened by patrickscheper 1
  • Selfhosted Version

    Selfhosted Version

    I'd like to self-host the OpenScan Cloud so I can use the whole Feature Suite offline when ever my Internet cuts out. Will it be possible to selfhost this service one day?

    opened by Semorphim 0
  • add a

    add a "resend email link" to the Openscan GUI

    Hi, would it be possible to add a "resend email link" to the Openscan GUI?

    Reason: I have uploaded my image set and the processing is marked as done in the Gui, but i have not received an email with the download link.

    best regards/beste Grüße, M.

    opened by mb9966 2
Owner
Thomas
Thomas
A Python wrapper around the OpenWeatherMap web API

PyOWM A Python wrapper around OpenWeatherMap web APIs What is it? PyOWM is a client Python wrapper library for OpenWeatherMap (OWM) web APIs. It allow

Claudio Sparpaglione 740 Dec 18, 2022
A light weight Python library for the Spotify Web API

Spotipy A light weight Python library for the Spotify Web API Documentation Spotipy's full documentation is online at Spotipy Documentation. Installat

Paul Lamere 4.2k Jan 6, 2023
Python client library for Google Maps API Web Services

Python Client for Google Maps Services Description Use Python? Want to geocode something? Looking for directions? Maybe matrices of directions? This l

Google Maps 3.8k Jan 1, 2023
Facebook open graph api implementation using the Django web framework in python

Django Facebook by Thierry Schellenbach (mellowmorning.com) Status Django and Facebook are both rapidly changing at the moment. Meanwhile, I'm caught

Thierry Schellenbach 1.4k Dec 29, 2022
HTTP Calls to Amazon Web Services Rest API for IoT Core Shadow Actions 💻🌐💡

aws-iot-shadow-rest-api HTTP Calls to Amazon Web Services Rest API for IoT Core Shadow Actions ?? ?? ?? This simple script implements the following aw

AIIIXIII 3 Jun 6, 2022
Python wrapper for Interactive Brokers Client Portal Web API

EasyIB: Unofficial Wrapper for Interactive Brokers API EasyIB is an unofficial python wrapper for Interactive Brokers Client Portal Web API. Features

null 39 Dec 13, 2022
WhatsApp Web API client with multi-device support

Tauros WhatsApp Web client for multi-device in python Free software: MIT Documentation: https://tauros.readthedocs.io Features TODO Credits This packa

Manjit Pardeshi 0 Jan 20, 2022
Django3 web app that renders OpenWeather API data ☁️☁️

nz-weather For a live build, visit - https://brandonru.pythonanywhere.com/ NZ Openweather API data rendered using Django3 and requests ☀️ Local Run In

Brandon Ru 1 Oct 17, 2021
Flask-SQLAlchemy API for daisuki-web

?? Anime Daisuki! API API de animes com cadastro de usuários. O usuário autenticado pode avaliar e favoritar animes, comentar episódios e verificar o

Paulo Thor 1 Nov 4, 2021
API RestFull web de pontos turisticos de certa região

##RESTful Web API para exposição de pontos turísticos de uma região## Propor um novo ponto turístico Moderação dos pontos turísticos cadastrados Lista

Lucas Silva 2 Jan 28, 2022