wiki:GSoC/2017/IntegrationOfPDALintoGRASSGIS

Version 16 (modified by ptschrum, 7 years ago) ( diff )

Added weekly report number 1

GSoC 2017 Integration Of PDAL into GRASS GIS

Title: Integration Of PDAL into GRASS GIS
Student Name: Paul Schrum, North Carolina Sate University
Organization: OSGeo - Open Source Geospatial Foundation
Mentor Name: Vaclav Petras, Anna Petrasova
GSoC proposal: Integration of PDAL into GRASS GIS
Repository: TODO

Abstract

The Point Data Abstraction Library (PDAL) “is Point Data Abstraction Library, and it is an open source software for translating and processing point cloud data. It is not limited to just LiDAR data, although the focus and impetus for many of the tools have their origins in LiDAR..” At the time of this proposal, the only user interface for PDAL is a Command Line Interface. The proposal envisions the development of a GRASS GIS module which will facilitate importing and exporting Lidar files (with the .las extension) into and out of Vector and Raster formats.

Goal

The goal is to add API classes and methods to form an Adapter in GRASS GIS to utilize PDAL to read Lidar datasets. Included in this will be development of command line and GUI tools to make use of PDAL from GRASS easy for the end user operating through the GRASS application. This involves development of (or extension of) v.in.pdal, r.in.pdal, and r3.in.pdal and thorough unit test coverage of these. Optionally, if time permits, I will develop classes, methods, and UI elements to implement v.external and @PDAL pseudo-mapsets for point clouds.

Timeline

status
Community bonding period Get GRASS GIS and PDAL to build from source.
MAY 30 - JUNE 2 Begin development of v.in.pdal, including Unit Test coverage. Unit test development will be parallel to software development.
JUNE 5 - JUNE 9 Complete basic functionality of v.in.pdal at the command line. Begin development of GUI support. Basic functionality entails import and export of .las files to and from GRASS vector maps.
JUNE 12 - 16 Complete GUI development for v.in.pdal. Identify edge and corner cases, add them to the testing data, and handle them in code. Begin vacation 15 June.
JUNE 17 - 23 Vacation. Unavailable all week.
JUNE 24 - 30 Vacation until 26 June. Begin familiarization with GRASS's raster API. Complete First Evaluation.
First evaluations
JULY 1 - 7 Partial week due to holiday. Begin work on command line r.in.pdal. Plan Class design and determine adapter pattern specifics.
JULY 8 - 14 Continue development of r.in.pdal, including Unit Test coverage.
JULY 15 - 21 Fix bugs in v.in.pdal found by the mentor. Complete basic functionality of r.in.pdal and begin development of GUI support.
JULY 22 - 28 Complete GUI development of r.in.pdal. Identify edge and corner cases, add them to the testing data, and handle them in code. Complete Second Evaluation
Second evaluations
JULY 31 - AUG 4 Begin work on r3.in.pdal, including Class design and determining adapter pattern specifics.
AUGUST 7 - 11 Complete work on r3.in.pdal, including GUI and Unit Tests.
AUGUST 14 - 18 Complete all documentation and final checklist. Unavailable after 15 August due to the start of the Fall semester at NC State.
AUGUST 21 - 29 Complete final evaluation
Final evaluations

Requirements

GRASS 7.3

Development

Detailed Proposed Task Plan

Week Ending Task Descriptions
2 June - Be able to debug GRASS using QCcreator.
- Obtain suitable Lidar test data. Be able to step through and grasp code for v.in.lidar.
- Be able to link with PDAL, call its functions, accept data that is returned.
- Using Vashek's testing framework, have at least one unit test created and passing.
- Set up sub-repository on github.

Weekly reports

Week 01

  1. What did you get done this week?
  • Built GRASS73 from source from my local repo directoy.
  • Stepped into a module (v.in.ascii) using the debugger to watch it work at the source code level. This was only proving the concept of stepping into the code – just getting it to work.
  • Talked with my mentor about the nature of the existing v.in.pdal module and what are some of the things which must be changed, fixed, or improved.
  1. What do you plan on doing next week?
  • Continue stepping through v.in.ascii to see how it works at the source level in order to understand how to write points to a vectormap.
  • Get GRASS 73 to link to current version of PDAL.
  • Fix broken references to PDAL data structures in the GRASS source
  • Refactor existing v.in.pdal so that operations which r.in.pdal and r3.in.pdal will need are in a separate module and available as functions to be called from all three of them.
  • Learn the process of calling PDAL and how to get it to do the basic operation of reading a lidar file and handing over the data to the caller.
  • Set up a basic set of test data for PDAL, open it from pdal without GRASS, then open it using pdal through GRASS with only the most basic options in operation.
  • Get PDAL to be able to read .laz (compressed) files. For some reason it can’t do that after build-from-source.
  1. Are you blocked on anything?

At the moment I can’t remember how to change the execution command so as to debug GRASS .c modules in QTCreator. Vashek did it in a few days ago while I was there, but I did not write it down, and now I can’t find it. I have a question in for him and Anna about this via email.

When I try to run v.in.ascii on GRASS73 on Linux, I just get errors: ERROR: Option <input> does not accept multiple answers ERROR: Option <output> does not accept multiple answers ERROR: Option <separator> does not accept multiple answers ERROR: Option <skip> does not accept multiple answers ERROR: Option <z> does not accept multiple answers

I am awaiting approval on the GRASS User mailing list to ask what I should do different. Note the command is generated via dialog box on GRASS73, and when I run it on GRASS72 on the Windows side it runs just fine.

Note: See TracWiki for help on using the wiki.