Coder Social home page Coder Social logo

nagyist / node-opendronemap Goto Github PK

View Code? Open in Web Editor NEW

This project forked from embeddedandroid/node-opendronemap

0.0 1.0 0.0 12.43 MB

Node.js App and REST API to access OpenDroneMap

License: GNU General Public License v3.0

JavaScript 94.24% Python 0.30% CSS 1.93% HTML 3.53%

node-opendronemap's Introduction

Open Source Drone Aerial Imagery Processing

node-OpenDroneMap is a Node.js App and REST API to access OpenDroneMap

http://nodeodm.masseranolabs.com

Alt text

Getting Started

For a quick taste of the application, we have setup a test environment at http://nodeodm.masseranolabs.com. Please note that this is not a production environment, and that processing on this server will be slow (you are sharing the server's resources with everyone else in the world).

If you want to do your own imagery processing, we recommend that you setup your own instance via Docker.

  • From the Docker Quickstart Terminal (Windows / OSX) or from the command line (Linux) type:
git clone https://github.com/pierotofy/node-OpenDroneMap
cd node-OpenDroneMap
docker build -t nodeodm:latest .
docker run -p 3000:3000 nodeodm:latest
  • If you're on Windows/OSX, find the IP of your Docker machine by running this command from your Docker Quickstart Terminal:
docker-machine ip

Linux users can connect to 127.0.0.1.

  • Open a Web Browser to http://<yourDockerMachineIp>:3000
  • Load some images
  • Press "Start Task"
  • Go for a walk :)

API Docs

See the API documentation page.

Run it Natively

If you are already running OpenDroneMap on Ubuntu natively you can follow these steps:

  1. Install PotreeConverter and LASzip dependency
apt-get install -y libboost-dev libboost-program-options-dev

mkdir /staging
git clone https://github.com/pierotofy/LAStools /staging/LAStools
cd LAStools/LASzip
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make && make install
ldconfig

git clone https://github.com/pierotofy/PotreeConverter /staging/PotreeConverter
cd /staging/PotreeConverter
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release -DLASZIP_INCLUDE_DIRS=/staging/LAStools/LASzip/dll -DLASZIP_LIBRARY=/staging/LAStools/LASzip/build/src/liblaszip.so ..
make && make install
  1. Install gdal2tiles.py script, node.js and npm dependencies
sudo curl --silent --location https://deb.nodesource.com/setup_6.x | sudo bash -
sudo apt-get install -y nodejs python-gdal
git clone https://github.com/pierotofy/node-OpenDroneMap
cd node-OpenDroneMap
npm install
  1. Start node-OpenDroneMap
node index.js

You may need to specify your ODM project path to start the server:

node index.js --odm_path /home/username/OpenDroneMap

If you want to start node ODM on a different port you can do the following:

node index.js --port 8000 --odm_path /home/username/OpenDroneMap

For other command line options you can run:

node index.js --help

You can also specify configuration values via a JSON file:

node index.js --config config.default.json

Command line arguments always take precedence over the configuration file.

Run it using PM2

The app can also be run as a background process using the pm2 process manager, which can also assist you with system startup scripts and process monitoring.

To install pm2, run (using sudo if required):

npm install pm2 -g

The app can then be started using

pm2 start processes.json

To have pm2 started on OS startup run

pm2 save
pm2 startup

and then run the command as per the instructions that prints out. If that command errors then you may have to specify the system (note that systemd should be used on CentOS 7). Note that if the process is not running as root (recommended) you will need to change /etc/init.d/pm2-init.sh to set export PM2_HOME="/path/to/user/home/.pm2", as per these instructions

You can monitor the process using pm2 status.

Test Mode

If you want to make a contribution, but don't want to setup OpenDroneMap, or perhaps you are working on a Windows machine, or if you want to run automated tests, you can turn test mode on:

node index.js --test

While in test mode all calls to OpenDroneMap's code will be simulated (see the /tests directory for the mock data that is returned).

Test Images

You can find some test drone images here.

What if I need more functionality?

node-OpenDroneMap is meant to be a lightweight API. If you are looking for a more comprehensive solution to drone mapping, check out WebODM, which uses node-OpenDroneMap for processing.

Contributing

Make a pull request small contributions. For big contributions, please open a discussion first. Please use ES6 syntax while writing new Javascript code so that we can keep the code base uniform.

Roadmap

  • Command line options for OpenDroneMap
  • GPC List support
  • Video support when the SLAM module becomes available
  • Continuous Integration Setup
  • Documentation
  • Unit Testing

node-opendronemap's People

Contributors

dbaldwin avatar embeddedandroid avatar matthewberryman avatar peterburlakov avatar pierotofy avatar

Watchers

 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.