Dynamo, Elk & conversion between coordinate systems

Hello

I have been playing around with the brilliant ‘Elk’ package in both Dynamo & Grasshopper.
If you are not familiar with this- it is worth a look. Basically it brings in mapping data, such as OpenstreetMap or digital elevation models.

I don’t know much about coordinate systems except to know it is complicated.
However- Elk obviously takes data in a geographic coordinate system (longitude & latitude) and converts it to a projected system (XYZ or cartesian)

The question is:

  • How would I convert a set of Dynamo points (XY) into a geographic format (long/lat) ?

I assume since Revit has the geographic location of the model, this is might be possible, maybe with Python ?

(I would like to bring in a series of points into a GIS based analytics/visualisation tool. It is really just an idea at this stage, but is along the lines of the abstract model visualisation in my blog post http://wp.me/p75vLU-1fS)
It not not need to be 100% accurate

thank you

Andrew

To (partially) answer my own question:

I used a 2 step process. There are 2 options for step 2 & both applications listed are free.

1. Dynamo
Translate points to use the project base point and project north. This is an adaptation of @Vikram_Subbaiah work. In my case, it translates points to coordinates of the relevant Map Grid of Australia.
https://forum.dynamobim.com/t/calculate-coordinates-of-a-mass-family-from-survey-point-in-a-file-with-project-north

2a QGIS
Project points from map grid coordinates to WGS84 (lat/long) using ‘QGIS’
(Import a CSV file of the points, and then reproject) This is a manual process

2b Geokettle
Project points from map grid coordinates to WGS84 (lat/long) using Geokettle. This is an automatic process, similar to Dynamo

For step 2, there are Python packages that will do this kind of projection (pyproj etc) so it is possible that the whole thing could be done in Dynamo. However, this is beyond my Python skills.
Surveyors or GIS people might say this is not 100% accurate, but good enough for my purposes.

The end result is: http://autode.sk/2cCiG3q

Andrew

1 Like

Hi Andrew,

In the GIS2BIM-package are some customnodes for this.

  1. Using the Google API for geocoding. The result is in WGS-84

  1. In the node below you can create a boundingbox in lat/long. The pythoncode can be used to transform coordinates.

  1. TransformCRS_epsg-node uses this server: https://epsg.io/transform to transform coordinates.

regards,

3 Likes

that is great

thanks Maarten

Andrew