Skip to main content

Python library for scanning lidar campaign planning

Project description


Python library for planning and configuring scanning lidar measurement campaigns

Why campaign-planning-tool?

Planning scanning lidar measurement campaigns is not a trivial task. There are many constraints, originating both from the campaign site as well from the lidar technology, which a campaign planner needs to consider to derive the best possible layout of the campaign. The same can be said for configuring scanning lidars to acquire high-quality measurements.

These tasks have been typically done ad-hoc and manually, thus requiring lidar expertize. However, since 2018 a work has been put to digitalize these processes, making them simpler for end-users.

After almost a decade of planning and configuring scanning lidar measurement campaigns, the accumulated experience and knowledge has been converted to campaign-planning-tool library, fascilitating the above mentioned tasks.

You don't need to be a scanning lidar expert anymore to design and configure scanning lidar campaigns!!!
That burden has been eliminated now, or at least that's the hope!

What campaign-planning-tool is capable of doing?

campaign-planning-tool provides users with a set of methods (read functions) that will allow them to:

  • Optimize measurement positions
  • Generate GIS layers which facilitate placement of lidars
  • Optimize and synchronize trajectories for multiple lidars
  • Export results in human and machine readable formats (KML, XML, YAML, etc.)
  • and more ...

...and this is only the beginning !

For more details check out a:

With every new version of the library new functionalities will be aded, and this is where you as a community of users can help!

How can I get campaign-planning-tool?

Through DTU hosted conda-forge!
If you don't have Anaconda or Miniconda installed on your computer you should install either of them first.

Afterwards, copy and execute the following command in the terminal:

conda create -n CPT -c -c conda-forge --no-channel-priority campaign-planning-tool

This will create a new conda enviroment CPT, and download and install campaign-planning-tool library together with all the dependencies. Feel free to change the name of the environment to whatever name it suites you (i.e., simply change CPT to something else).

Following the installation you need to activate newly made enviroment in the terminal:

source activate CPT

Now start the python editor of your choice, for example jupyter:


Once in jupyter import the CPT class:

from campaign_planning_tool import CPT

and start using the library (using underscores to call library is not a mistake!).

The library is fully documented so hit help to get a class or class method description:



Working with a new library is always a bit of pain.
To get you up with speed download Jupyter examples.
Soon the instructional videos will be available as well!

Issues, Requests, Kudos and Curses

If you have issues running campaign-planning-tool or you have requests or by any chance you want to contribute to the further development of the library please post Issues or make Pull requests on Github.

So far Windows user are currently facing an issue running method export_kml.
Currently version 0.1.2 is under test which solves the reported issue.

How to cite campaign-planning-tool

If you are using campaign-planning-tool, it would be great to cite this repository as well the paper which describes methodology which was used to develop the library:

Nikola Vasiljevic. (2019, August 28). 
campaign-planning-tool v0.1.3 
Zenodo. 	Sep 26, 2019

Vasiljević, N., Vignaroli, A., Bechmann, A., and Wagner, R.: 
Digitalization of scanning lidar measurement campaign planning, 
Wind Energ. Sci. Discuss., in review, 2019. 


Well deserved kudos go to awesome developers of following Python libraries that are an integrating part of campaign-planning-tool:

as well to the members of RECAST project: Andrea Vignaroli (DTU), Andreas Bechmann (DTU), Rozenn Wagner (DTU) and Morten Thøgersen (EMD) who helped in crafting the methodology, and not to forget Neil Davis (DTU) who helped making the library available through conda-forge.


campaign-planning-tool is provided under the BSD-3-Clause license.


Nikola Vasiljević,

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

campaign-planning-tool- (39.1 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page