Heron

This is the first release of an add-on which enables the import of GIS data from various sources into the Rhino/Grasshopper environment, located, scaled and cropped based on an Earth Anchor Point and a clipping polygon.  Sources of GIS data include Shapefiles, USGS IMG/HGT Elevation files and ArcGIS REST Services over the web.

The add-on includes eight components in two categories:

GIS REST

  • ESRI REST Service Geocode. Get a Decimal Degree coordinate from an address or Point-of-Interest with the Geocode service provided by ESRI.  
  • Get REST Service Layers. Discover data layers  from various data sources on the web. If the layers are a vector type, they return data similar to a shapefile, with geometry and associated data fields.  To be used with the Get REST Vector or Get REST Raster component depending on the data type.
  • Get REST Raster. Grabs JPGs of imagery from the specified web source.  Once downloaded to a folder the image can be located and scaled to match the boundary in real world units (meters) with the use of the image frame.
  • Get REST Vector.  Queries the web source for geometry and associated data fields.  For instance demographic information from the US Census can be referenced.

GIS Tools

  • Decimal Degrees to XY.  Convert Decimal Degrees to XY coorindates based on the EarthAnchorPoint.
  • Import SHP.  Imports Shapefiles using OGR Libraries. Output is in the form of points (for now) which can then be connected to form polylines.  For Shapefiles with Multipolygons (ie building footprints with courtyards), the component reads mulitple branches of points per Feature.  To get the footprint, you will need to draw a polyline for each branch, shift the branches and use the Boundary Surface component.
  • Import Topo.  Imports IMG and (STRM) HGT files using GDAL Libraries.  Output is in the form of a mesh.
  • Set EarthAnchorPoint.  Runs a macro to set the Earth Anchor Point in Rhino.  This is important to minimize distortion translating from the curved surface of the Earth to Euclidean coordinates.

Special thanks go to the vibrant GH community, the masterful guidance of Andrew Heumann and endless patience of George Waters.

  • Nenov Ivo

    Do you know if there is a USGS IMG/HGT Elevation files in Europe or it's just for the US ?

  • Brian Washburn

    There are from USGS:

    http://gdex.cr.usgs.gov/gdex/

    or from NASA: 

    http://www2.jpl.nasa.gov/srtm/

    Note, some of the data can be spotty (see http://www.viewfinderpanoramas.org/dem3.html#hgt).

  • Brian Washburn

    Some of the data from those website comes in GeoTiff format, which is also an acceptable format for the Import Topo component.

  • Nenov Ivo

    Thanks for responding so quickly ! 

  • Joel Mendez

    Where i can get a catalog of basemaps and shapefiles?

  • Brian Washburn

    For a place to start, check out the comments here:

    http://www.grasshopper3d.com/video/demonstrating-the-heron-shapefil...

    Many shapefiles I find myself using come from local municipalities like counties or cities that maintain their own GIS websites (i.e. data.sfgov.org), so I would also try searching Google for the area of interest and "GIS" or "shapefile".

  • Eric Galipo

    I am a bit of a noob with this, and have a question about the ImportTopo component. 

    I have a georeferenced IMG file of my area, which covers about 3 square miles in NYC. I am able to connect it to the ImportToPo component, but I am unsure what the 'boundary' component is supposed to link to. 

    I received an DEM file from another party which i am able to open in GIS and export directly to the IMG file. This part works well, and it seems that Heron is able to read it, but I just do not know what else i am supposed to have to plug into the Boundary input. 

    I tried watching the instruction videos, but they have no sound and the resolution is not high enough to really see what is going on on-screen. 

    any guidance or documentation would be much appreciated. 


    EG

  • Brian Washburn

    When you connect a file path to the "imgLocation" input, a bounding box of the data will show in your viewport.  The "boundary" input is asking for a curve(s) that describes your area of interest which must fall entirely within the bounding box of the data.

  • Eric Galipo

    Thanks for the quick response! 

    Yes, i just figured that out. I was assuming that it would be an attribute of the actual DEM/IMG file, but its just something I have to draw on my own. 


    So the good news is that I can get the mesh into my model, but now the scale seems to be WAAAAYYYY off, but i cant seem to figure out how its being transformed since. Any guidance on what units Heron is assuming or why it might be scaling the data way up ? 

    EG 

  • Brian Washburn

    Heron uses the projected coordinate system for WGS84 (EPSG 3857), but automatically translates data using other coordinate systems.  One reason I've seen for the scale being off is that an incorrect coordinate system is associated with the incoming data.  This can happen when manipulating and exporting data if the appropriate coordinate system is not set.  Try linking the DEM file directly to the ImportTopo component.  It can accept a few raster types other than IMG.

  • Eric Galipo

    Ahh. We are using 

    "NAD_1983_StatePlane_New_York_Long_Island_FIPS_3104_Feet"

    as our coordinate system. I am wary of translating out of the existing coordinate system since I need all the other data to line up to this 

    I've added the IMG file, if you want to try and replicate my problem.. 

    EG 

    rh_terrain1.imgrh_terrain1.rrdrh_terrain1.img

  • Brian Washburn

    When I reprojected (or warped) your IMG file from the CRS you specified to WGS84 in QGIS, I get an output that seems usable (see attached).  I've attached the results as well.

    Heron Output.JPG

    QGIS Reprojection.JPG

    Heron Canvas.png

    Heron ImportTopo.gh

  • Brian Washburn

    Oh and here is the modified IMG file:

    rh_terrain1_crs2.img

  • Evgeny Shirinyan

    Brian, thank you for the plugin

    I have a question related to CRS. Heron uses WGS84 Pseudo Mercator, right? From my point of view this CRS is bad for CAD export because it distorts distances and Rhino can't recalculate distances as it possible in Google maps os QGIS. What is your take on it?

    Also I didn't manage to import reprojected shp file (for example in as WGS84 / UTM zone XX). 

  • Brian Washburn

    You make a great point Evgeny!  Heron is based on WGS84 Pseudo Mercator (or EPSG 3857) as both an attempt to use a conformal projection within the framework of Rhino's cartesian coordinate system and for ease of communication with online mapping resources.  Using a conformal projection allows square building footprints to appear square in Rhino.  There are, however, issues with distortion at larger scales as has been documented.  Heron is no replacement for proper GIS software.  It was meant for integrating GIS data into a Rhino model at building/city scale.  At some point it it may make sense to allow the user to specific which CRS they want to use, but that will be pretty far down the road.

  • Brian Washburn

    Also, can you post more information on the problem you're experiencing with reprojecting?  The GDAL libraries Heron uses, should be able to automatically handle reprojecting from any CRSs to EPSG 3857.

  • Evgeny Shirinyan

    Hi Brian!

    Thank you for your answer. I will go deeper in details and settings in Heron. 

    1) I'd like to use Heron to integrate GIS-data with Rhino and get the geometry for a draft microscale urban analysis, so geometry hasn't to be very precise. However I'd like to have a clear understanding what distortion will be if I use 3857 - because it is very different from CAD-geometry that is exported from QGIS (or other conventional GIS) with 3857 CRS. For example UTM Zone 37N 32637 (suitable for Moscow) and 3857 have ratio almost 2:1 if both are exported to CAD. With Heron the difference with 32637 is very slight

    As it seems to me it is due to relocation of Earth Point in Heron. Could you clarify it?

    2) I agree on geometry relocation - very large distances can cause bugs in calculations. 

    3) "The GDAL libraries Heron uses, should be able to automatically handle reprojecting from any CRSs to EPSG 3857." - I don't need to reproject my data, I was trying to use it already reprojected to appropriate UTM zone. 

  • TJ

    Hello, While importing a SHP file, the pointfeatures branch path doesn't match the atributes branch path.  After doing polylines with the points and extruding it using a height attribute from the values output, a buildings height is being applied to other building. What can be done to fix this?  

  • Vittorio Paris

    Hi!

    I am beginner,  I have a problem when i use heron compare this:

  • Brian Washburn

    Vittorio, Try replacing the REST Geocode component currently on the canvas with a new one from the Heron tab.

  • Vittorio Paris

    Thank!!!!

  • owe

    Anybody knows how to generate a shape file from Grasshopper?

    THX

  • Evgeny Shirinyan

    Hi Brian!

    I am back with my tiny wish list!

    Here are two screenshots comparing InfraWorks export of reprojected data and QGIS one with the Heron result. A slight turn and a slight scale difference (~0.004) It would be great if Heron could switch off its 3857 reprojection and I will be able to send analysis results from Rhino to GIS!

    I have checked ArcGIS Pro, InfraWorks and FME - all these tools produce meshes that are not suitable for analysis within Rhino.