Giter Site home page Giter Site logo

marcromeyn / lopocs Goto Github PK

View Code? Open in Web Editor NEW

This project forked from oslandia/lopocs

0.0 2.0 0.0 32.78 MB

Light OpenSource PointCloud Server

Home Page: https://li3ds.github.io/lopocs/

License: GNU Lesser General Public License v2.1

Python 100.00%

lopocs's Introduction

[Build Status] (https://travis-ci.org/LI3DS/lopocs)



LOPoCS (Light Opensource PointCloud Server) is a point cloud server written in Python, allowing to load Point Cloud from Postgis thanks to the pgpointcloud extension.



The current version of LOPoCS provides a way to load Point Cloud from Postgis in:

Note that LOPoCS is currently the only 3DTiles server able to stream data from pgpointcloud. This is possible thanks to the python module py3dtiles.

Developments are still going on to improve state-of-the-art algorithms and performances.

Video

Online demonstration

Install

From sources

To use LOPoCS from sources:

$ sudo apt-get install libgdal-dev
$ git clone https://github.com/LI3DS/lopocs
$ cd lopocs
$ virtualenv -p /usr/bin/python3 venv
$ . venv/bin/activate
(venv)$ pip install --upgrade pip
(venv)$ pip install -e .
(venv)$ pip install -e "git+https://github.com/hobu/laz-perf#egg=lazperf&subdirectory=python"

If you want to run unit tests:

(venv)$ pip install nose
(venv)$ nosetests
...

How to run

LOPoCS has been tested with uWSGI and Nginx.

Once files lopocs.uwsgi.yml and lopocs.yml are well configurated for your environment, you can run LOPoCS:

(venv)$ pip install uwsgi
(venv)$ uwsgi --yml conf/lopocs.uwsgi.yml
spawned uWSGI worker 1 (pid: 5984, cores: 1)

In case of the next error:

(venv)$ uwsgi --yml conf/lopocs.uwsgi.yml
ImportError: No module named site
(venv)$ deactivate
(venv)$ . venv/bin/activate
(venv)$ uwsgi --yml conf/lopocs.uwsgi.yml
spawned uWSGI worker 1 (pid: 5984, cores: 1)

To test your installation:

$ curl http://localhost:5000/infos/online
"Congratulation, LOPoCS is online!!!"

API and Swagger

Each viewer has specific expectations and communication protocol. So, the API is built to meet these specific needs.

Currently, 2 kinds of formats are supported:

  • 3DTiles
  • Greyhound format (LAZ data with a footer indicating the number of points)

LOPoCS is able to stream data up to 3 viewers:

  • Potree viewer with the Greyhound format
  • iTowns2 with the Greyhound format
  • Cesium with the 3DTiles format

LOPoCS provides its RESTful API through a Swagger UI by default on http://localhost:5000:

There's three namespace:

  • infos: to retrieve informations about LOPoCS (contact, ...)
  • greyhound: to communicate with LOPoCS according to the Greyhound format
  • 3dtiles: to communicate with LOPoCS according to the 3DTiles format

Infos Namespace

You can retrieve simple information about LOPoCS through this namespace. There are no settings in this case, just simple query:

$ curl http://localhost:5000/infos/contact
"[email protected]"

Greyhound Namespace

The greyhound namespace provides 3 points of entry:

  • info: returns information about the dataset served by the server in JSON
  • hierarchy: returns the description of the dataset according to an octree in JSON
  • read: returns points in LAZ format

3DTiles Namespace

The 3dtiles namespace provides 2 points of entry:

  • info: returns information about the dataset in JSON
  • read.pnts: returns points in 3DTiles Point Cloud format

License

LOPoCS is distributed under LPGL2 or later.

lopocs's People

Contributors

ldgeo avatar pblottiere avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.