LB Terrain Generator | index out of range + unable to create image

hi guys,

First, what to do when I get the follow error message : something went wrong during the request of images, ( I tried many times without success )

Also Do you know why I’m running a lot into this error message : index out of range. ? (And for apparently no reason… for instance, i run it, it work correctly. Then I change a parameter and it says the error message. So I go back to last settings… and it says the same error message… but it was working 5 min ago…

1.0_GH_script_site-modeling_CC.gh (386.1 KB)

Hi @CharlesCollin,

the component retrieves data from Google API Elevation. I have checked the component and basically the error is because some requests failed, this create a gap. Without all elevations data the component cannot create the final surface / mesh.

I have written a new component for Rhino 6, I release it soon.
The principle is that every user who want to use the component need to add a “API KEY”.
You have 2.500 requests per day for free calculated as the sum of client-side and server-side queries. Obviously, if you have a huge model it will be probably that you need additional requests not for free.
Besides, you can check your quota using the console provided by google:


Here is an example (e.g. Pulo di Altamura [Italy]) made with this new clean method:

Regards,
Antonello

4 Likes

Thanks alot @AntonelloDiNunzio !!!

I have couple questions :

  1. So I assume until you release this new version of Terrain generator, their is no way around the issues I face ?

  2. In the new component you will release will there be an output for satelite images that could further be mapped onto the topography with human plugin ? I didn’t see it in the screenshot you posted here :open_mouth: (I’m a little scared! that was my favorite feature of terrain generator !!)

  3. Also I red about Google elevation API, and from what I saw, the topography resolution is around 30 meters grid horizontally (most of data coming from STRM) (Am I mistaking?). But the mesh out of your component seems way more accurate. Is it only interpolation points between main references points? I’m asking because Heron plugin is almost doing the same thing, but getting its data from Argis REST services (don’t fully understand) and topography resolution is about 20-30m. So which one is the most accurate ?

  4. Regarding Google API new platform that will be release the 11 June 2018, API key won’t be free anymore. How’s Terrain generator will work (pricing, resolution, etc)?

Finally thank you very much to you and all other contributors for the awesome work :wink: ! Its definitely helping our architect workflow outhere ! I truly appreciate.

Best,
Charles C…

Hi @CharlesCollin,

I have published component on Github, you can find it here: Ladybug_extension_WIP
Unfortunately, I do not use Rhino 5 anymore and I am not sure it is compatible with Rhino 5 as well.

  1. The new component is available.
  2. You are able to generate also static maps like the previous component.
  3. To be honest I am not sure about the accurancy, I know that Google uses STRM but also other data source. Argis REST has a precise map about the data source: Arcgis REST
  4. The idea is that every user can improve and change the Terrain Component as he want. It is a template to start with. For this reason, you need an API key.
    About the payment system, see this links here: Understanding Billing Google maps API;
    FAQ Google (question: How much does it cost to use the Google Maps Platform?)
    Besides, I invite you to read Pricing for the Elevation API and Maps Static API:
    Elevation API
    Maps Static API
1 Like

Ahhh !! exactly what I was looking for ! Thank you very much @AntonelloDiNunzio. As soon as I get Rhino 6 I will give it a try !

One thing, would it be something possible for you to add an output for buildings using google API ? So it wont be painfull to try to match 3Dbuildings made from other GIS plugins.

I know you worked with @djordje for the ENVI-met study to get theses building Data but unfortunatly for most of the project I’m working on, OSM data didn’t have all the information I want (missing buildings and heights) which is really frustrating. I have to go around and take hours to find decent shapefiles.

So Implementing the Terrain generator with a 3D building output would be something magical :smiley: !

Thank you very much for time and effort @AntonelloDiNunzio . I really appreciate your work.

Best,
Charles C.

Dear Antonello,

Thanks for the great effort.

We havent upgraded to Rhino 6, so can’t test your latest version.
I tried the one on HYDRA and added my google key.
I couldnt get my google key to work, and only for a limited number of requests (as you wrote).
I looked into the alternative at OpenElevation.com but it was super slow.
I stumbled upon the MapQuest Elevation API. It gives you 15000 requests a month and runs quite fast.
You might want to include that as an alternative in the google maps. I haven’t compared the results with the other services, but two sample tests around in different parts of Denmark resulted in same elevations as local municipalities’ GIS maps.

#list_coordinate = [str(pt.Y) + ',' + str(pt.X) + "|" for pt in points]
list_coordinate = [str(pt.Y) + ',' + str(pt.X) + "," for pt in points]
flat_list_coordinate = ''.join(list_coordinate)
flat_list_coordinate = flat_list_coordinate[:len(flat_list_coordinate)-1]
url_part2 = flat_list_coordinate

#url_part1 = 'http://maps.googleapis.com/maps/api/elevation/json?locations='
#url_part1 = 'https://api.open-elevation.com/api/v1/lookup?locations='
url_part1a = 'http://open.mapquestapi.com/elevation/v1/profile?key='
url_part1b = '&shapeFormat=raw&latLngCollection='
url_part1 = url_part1a + key + url_part1b

#goog_url = url_part1 + url_part2 + '&sensor=false'
goog_url = url_part1 + url_part2

https://developer.mapquest.com/documentation/open/elevation-api/

Happy new years!

/Mathias Sønderskov

Hi @Mathiassn,

Great idea. Could you share your version, so other users can start use it? Thanks.

I’m going to apply it also to Rhino 6 component as an alternative to Google API and add you as contributor of the component. LbTerrainGenerator for Rhino6

Thank you,
Antonello

Hi @Mathiassn,

I have updated the component for Rhino6. Ladybug_extension_WIP
Now it support three API:

  1. Google API
  2. MapQuest API
  3. JawgMaps API

I suggest you sign up to JawgMaps. It uses interpolation method for elevation data. The surfaces looks very smooth:

Regards,
Antonello

4 Likes

Beautiful @AntonelloDiNunzio !
It looks better than I would dare wish for.

Great job.