गुरुर्ब्रह्मा ग्रुरुर्विष्णुः गुरुर्देवो महेश्वरः ।

गुरुः साक्षात् परं ब्रह्म तस्मै श्री गुरवे नमः ॥

Guru is Brahmā(the creator of universe), Guru is Vishnu(the protector of universe),
Guru is Shiv(the destroyer of universe, infact Guru is Parbrahma(the source of energy),
and I bow to him, The Sadhguru(The Ultimate Pious Spiritual Guide)

As a शिष्य(student) I can't be thankful enough to my गुरु(mentor) Martijn Visser who mentored me on this project and for all the learning that I've done under him.

April-Early May

Packages like Shapefile/GeoJSON/ArchGDAL are main parsers for geospatial data into Julia. There has been a lot of discussion on having a tabular representation for geospatial data. R has sf and Python has GeoPandas. In Julia there has been interest in similar functionality for quite sometime now. Thanks to the Tables interface in Shapefile, GeoJSONTables and ArchGDAL we are getting closer.

Motivation

This image of R's sf credits: Allison Horst clearly depicts our vision of having special columns that hold geometry, tagged along with their properties in a DataFrame. customizable

So we started working towards a GeoDataFrames.jl package, that would wrap an Array{Feature} into a GeoTable.

struct GeoTable{T<:Array}
    features::T
end

and a GeoTableRow would handle the individual features

struct GeoTableRow{T, Names, Types}
    geometry::T
    properties::NamedTuple{Names, Types}
end

May and further

Currently many packages define their own geometry types, and rely on the GeoInterface to exchange between different representations. GeometryBasics is an amazing API designed by Simon Danisch from the beginning to work well for geospatial applications. It has well defined standard geometry types along with a good metadata support that allows to represent both geometries and properties as features rows in a DataFrame through StructArrays that supports the Tables interface .

With the above points in mind, we decided to go against the Python/R convention, i.e. having a separate GeoDataFrames package since the same functionality can now be availed in individual packages via GeometryBasics. We modified our plans to work with the GeometryBasics API and migrate Shapefile.jl from using its own geometry types to GeometryBasics types and do the same for GeoJSONTables.