Elk for Grasshopper

5 min read
Share on twitter
Share on linkedin
Share on facebook
Share on email

Elk is a set of Grasshopper tools to generate a map and topographical surfaces using open source data from Open Street Map and Shuttle Radar Topography Mission (SRTM) data from USGS. It is developed by Timothy Logan and works similarly to @ITMeerkat GIS and Flux’s Site Extractor. Elk has recently been rewritten from scratch and as such this tutorial will focus on the latest version, 2.2.2.

Open Streep Map export

Before we can import any data into Grasshopper, we first need to export the data from Open Street Map (OSM). Once you have found your area of interest, select export up the top (1), then manually select a different area (2), then export (3). The export will create a file called ‘map.osm’ in your download folder which we can reference into Grasshopper.


Import OSM data

Within Grasshopper, we can use ‘File Path’ and ‘Location’ components to read the OSM data. The Location component converts the latitude and longitude locations point data based on the origin being the lower-left corner. For example, in the image above, the OSM data has a latitude domain of -33.8800 to -33.8647 and a longitude domain of 151.1727 to 151.2064. Therefore, the bottom left-hand corner of the window will correspond to -33.8800, 151.1727.


Feature type

Next, we can use the OSM data component to start organising and collecting the data from the OSM file. The component defaults to selecting building elements but can be changed to choose from any of the other map features in the OSM specification by right-clicking on the component.


We can use the polyline component to draw closed polylines where possible. Note that although you may have selected specific categories to be extracted, such as ‘railway’, this is entirely dependent on the data coming out of Open Street Map. This limitation means that some of the OSM data components may be empty depending on your location.


Geo-reference model

Once the data is in Rhino, you can add a point at 0,0,0 and use Rhino’s ‘Earth Anchor Point’ command to assign the point to the desired latitude and longitude that we identified earlier, -33.8800, 151.1727. This process will georeference your model.


To generate a topography, Elk uses data that originates from the Shuttle Radar Topography Mission (SRTM) of 2000. The SRTM was flown aboard the space shuttle Endeavour from 11-22 February 2000. The National Aeronautics and Space Administration (NASA) and the National Geospatial-Intelligence Agency (NGA) participated in an international project to acquire radar data which were used to create the first near-global set of land elevations. Endeavour orbited Earth 16 times each day during the 11-day mission, completing 176 orbits. SRTM successfully collected radar data over 80% of the earth’s land surface between 60° north and 56° south latitude with data points posted every one arc-second (approximately 30 metres). This data was then packaged into 1° x 1° tiles.

The Topography component can be used to generate points, curves, and a surface from various Digital Elevation Model (DEM) file formats. Elk currently accepts:


*IMG files at a resolution of 1/3 arc second. The higher resolution IMG files are available for the United States only and can be downloaded from the USGS National Map Viewer. When searching for the data, choose Data > Elevation Products (3DEP), with a data extent of 1 x 1 degree and *IMG file format. 



*GeoTIFF files at a resolution of 1 or 3 arc seconds. GeoTIFF files are available for 1 and 3 arc second resolutions for most of the earth and can be downloaded from the USGS Earth Explorer. This option is the best for data in Australia. When selecting your data sets, choose Digital Elevations > SRTM > SRTM Void Filled.


Once you have found your data set, go to results and download options and select GeoTIFF.



*HGT files at a resolution of 1 or 3 arc seconds. HGT files are the least reliable files as they tend to contain holes in the data. But they are the most basic form of DEM. The website is quite challenging to navigate, but for example, to access Sydney select Version2_1 > STRM3 > Australia > S34E151.hgt.zip. Ensure you unzip the file before trying to use it in Grasshopper.


Grasshopper script

Once you have download one of the datasets, it is just a matter of a simple Grasshopper script. We can use the latitude and longitude from the Location component. The Topography component will output points, curves and surfaces. In the example below, I have flattened the points and used a Delaunay Mesh instead.


After generating your topography, you can bake all the geometry and project all the curves onto your surface.

Share on twitter
Share on linkedin
Share on facebook
Share on email

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Balcony Area and Depth with Dynamo

Min balcony area and depth

Verify a balcony’s minimum area and depth with Dynamo for compliance with the NSW Apartment Design Guide and SEPP65 requirements.

Renumber Balconies

Renumber balconies

A Dynamo workflow to renumber balconies based on their associated apartment room to assist in documentation and compliance checking.


© 2021 Parametric Monkey
Parametric Monkey and the Parametric Monkey logo are trademarks of Parametric Monkey Pty Ltd.


Drop us a message and someone from our team will be in touch with you shortly.


Thank you for your interest. Someone from our team will be in touch soon.


To find out about upcoming public workshops or to organise a private workshop, please submit the following contact form and we’ll be in touch soon.