GDALDWG SoC 2016

Implementation of ODA DWG files Specification, which will allow to read DWG as a newly supported file-format.

Idea for this project was taken from GDAL SoC Ideas.

Links

 * Dev Blog: http://gsoc2016gdaldwg.blogspot.ru
 * GitHub (libopencad): https://github.com/sandyre/libopencad

Write a new library to read DWG files

 * Library should be written in an easy-to-extend style, so every DWG version can be handled easily.
 * Library should provide a clear API how to interact with it, and an easy method to write OGR Driver based on it.
 * Library should has an abstract data model for all DWG/DXF files of any version (so, DXF format also could be added to the library).

GDAL Driver
Implement a new DWG driver for OGR, which will work with libopencad.

Possible future extension (not necessarily part of SoC project)

 * Support for writing ability - creating CAD files is more complicated than reading, but with good library/driver architecture it will be possible without any painful refactoring.
 * Not all DWG format versions will be handled during GSoC, so working with them will also be a good extension.

Schedule

 * May 28: Reading of DWG R15, basic documentation of libopencad
 * June 20: Implementation of OGR Driver for reading DWG R15.
 * July 8: OGR DWG Driver documentation and testing.
 * July 22: Implement DWG R13, R14, bug fixes and testing.
 * August 18: Completed documentation for libopencad and OGR DWG Driver, PR to GDAL Trunk.

What new functionality this project brings

 * A lot of GIS Applications are based on GDAL, so adding a new supported extension will give a capability to work with Autodesk DWG files, which is the most popular CAD format in the world[1].
 * There is no open-source library which is still maintained and is under X/MIT compatible license. libopencad will be under X/MIT license, so every application which is interested in DWG files can use it.

Student's Biography
My name is Alexandr Borzykh, I am second-year undergraduate student at ITMO University.

I am pretty new to OpenSource projects. I like C/C++ languages, have some experience with Python.