World Globe with Precision Shore Lines

Show off your FreeCAD projects here!
DanielLeeWenger
Posts: 32
Joined: Sun Feb 02, 2020 4:02 am

World Globe with Precision Shore Lines

Postby DanielLeeWenger » Sun Nov 08, 2020 11:53 pm

My first big project with FreeCAD, a world globe using the high precision GSHHS boundary data of earth’s land masses. See https://www.ngdc.noaa.gov/mgg/shorelines/

The globe, composed of two hollow hemispheres with outside radius 100mm and inside radius 96mm, were used as base for the land masses. 2mm thick land masses were placed on top of the hemispheres to represent the islands and continents of the world. To avoid over crowding I settled on the continents and the largest islands totaling 61 land masses.

The GSHHS outlines are given as a series of longitude/latitude points for each separate land mass. The outline of an island was placed on each side of the 2mm spherical shell and then a loft was made from one side to the other. Cutting the shell with the loft generates the desired solid, a 2mm thick spherically shaped object representing a land mass.

Lofts between the full contours proved successful for the smaller islands but the large continents tested my patience due to day-long calculations of the lofts. Instead of plotting the entire outline and then doing a loft I created a loft from each pair of points and then did a union of the lofts. The calculations performed much more quickly, within hours for the largest land mass, Eurasia with 6,851 data points. Note: that corresponds to a solid with 6,853 faces!

The preparation of the data and the generation of the Python scripts to create these objects was done via LiveCode, a language that I use when C is not called for. I generated Python code, for each pair of data points, to create the Part:Arc at two different hemisphere diameters and to create the loft between the two arcs. The Part:Boolean:Union of the lofts and the Part:Split:Slice Apart of the shell by the combined lofts was performed at the GUI level.

A land mass is given in the form of a sequence of unit vectors each expressed as a longitude/latitude pair. The LiveCode program converted the long/lat data to x, y, z coordinates and data pairs were generated at the two diameters. The arc is defined for FreeCAD Part:Arc by giving the end points and the mid point of the arc. The mid point V3 of two end points V1 and V2 is found by normalizing V3=(V1 + V2)/2 and then expanding to the desired radius. The Python code that was generated was then pasted into FreeCAD via the console.

After a land mass was generated and before it was added to the base hemisphere it was meshed with a surface deviation of 0.001mm and angular deviation of 10 deg. I do not understand the significance of the angular deviation. The surface deviation seems to be needed to handle the detail in the contour data.

. The hemispheres were built up with special attention given to Africa, South America and those islands that straddle the equator. They needed to be boolean split into northern and southern sections. After the masses were added to the supporting hemispheres the entire collection of meshed objects were merged and exported to STL.

The printed globe contains 61 of the largest land masses, from Eurasia down to Bathurst Island. The 9 largest lakes were also shown via a Cut from the land mass. Data for all except Eurasia and North America came from the intermediate precision GSHHS file. Those two came from the low precision GSHHS file.

To avoid a large amount of support material inside the hemisphere a hollow spherical cone with interior angle of 35 degrees was inserted inside the hemisphere, thus removing the need for interior support during the printing process.

The hemispheres are glued together with four 1/8” x 1” pins for alignment. Printing time was about 5 days.

The STL files and information about the printer settings may be found at https://www.prusaprinters.org/prints/37340-world-globe

The GSHHS source files in text format may be found at https://www.dropbox.com/sh/wac25gk0f2n3 ... HdZNa?dl=0 as well as sample Python code showing the technique used and a FreeCAD file with a sample land mass.

A FreeCAD screen shot at https://forum.freecadweb.org/viewtopic. ... 0&start=90

Work was done on an iMac using FreeCAD 0.19.

For the geographers among us, here are the names of the objects on the globe in order by GSHHS number.

Northern Hemisphere

0 Eurasia
2 North America
7 Greenland
11 Baffin Island
13 Honshu
14 Victoria Island
15 Great Britain
16 Ellesmere Island
21 NewFoundLand
22 Cuba
23 Luzon
24 Iceland
25 Mindanao
26 Ireland
27 Hokkaido
28 Sakhalin
29 Hispaniola
30 Banks Island
33 Devon Island
37 Severny Island
38 Southampton Island
40 Axel Heiberg Island
41 Svalbard Island
43 Kuyushu
44 Taiwan
45 New Britain
46 Brodeur Peninsula
47 Hainan
48 Prince of Wales Island
49 Yuzhny Island
50 Vancouver Island (BC)
52 Sicily
53 Somerset Island
54 Sardinia
55 Kotelny (Kettle) Island
56 Shikoku


Southern Hemisphere

5 Antartica
6 Australia
8 Papau
9 Borneo
10 Madagascar
12 Sumatra
18 NewZealand (South)
19 Java
20 NewZealand (North)
31 Sri Lanka
32 Tasmania
34 Alexander Island
35 Isla Grande de La Tierra Fuego
36 Berkner Island
39 MelvilIe Island
42 Ilha Marajo
51 Timor
58 Seram Island
59 Grande Terra
60 Bathurst Island


Straddling the equator

1 Africa
3 South America
17 Sulawesi
57 Halmahera

Lakes

32621 Erie
33257 Tanganyika
33258 Baikal
33259 GreatBear
33260 GreatSlave
33261 Malawi
332531 Caspian
332541 GreatLakes
332551 Victoria
332641 Ontario
Attachments
Europe.jpg
Europe
Europe.jpg (681.02 KiB) Viewed 1059 times
Asia Pacific.jpg
Asia Pacific
Asia Pacific.jpg (645.91 KiB) Viewed 1059 times
Australia.jpg
Australia
Australia.jpg (648.6 KiB) Viewed 1059 times
South America.jpg
South America
South America.jpg (642.67 KiB) Viewed 1059 times
North America.jpg
North America
North America.jpg (668.63 KiB) Viewed 1059 times
Last edited by DanielLeeWenger on Wed Nov 18, 2020 7:38 pm, edited 1 time in total.
User avatar
Kunda1
Posts: 9209
Joined: Thu Jan 05, 2017 9:03 pm

Re: World Globe with Precision Shore Lines

Postby Kunda1 » Mon Nov 09, 2020 12:56 am

Bravo!
Alone you go faster. Together we go farther
Want to contribute back to FC? Checkout:
#lowhangingfruit | Use the Source, Luke. | How to Help FreeCAD | How to report FC bugs and features
User avatar
M4x
Posts: 326
Joined: Sat Mar 11, 2017 9:23 am
Location: Germany

Re: World Globe with Precision Shore Lines

Postby M4x » Mon Nov 09, 2020 4:11 pm

Wow, impressive! Was it just for fun or is it part of something else?
DanielLeeWenger
Posts: 32
Joined: Sun Feb 02, 2020 4:02 am

Re: World Globe with Precision Shore Lines

Postby DanielLeeWenger » Mon Nov 09, 2020 6:59 pm

Kunda1 wrote:
Mon Nov 09, 2020 12:56 am
Bravo!
Thank you for the appreciation.
M4x wrote:
Mon Nov 09, 2020 4:11 pm

Wow, impressive! Was it just for fun or is it part of something else?

Thank you M4x as well.

The answer to your question is really both. It came to me that the earth globe would be a fun project using data that I was already familiar with. The reason that I acquired a 3d printer and thus the need to learn 3d design was that I wanted to make the base for a sundial that I have been playing with since 1973. The glass earth globe with laser etched land contours depended upon a wood turner to make the base. I wanted to do the base myself, thus the new direction. Here are some pics of my FreeCAD/3d printer base for a sundial for Quito Ecuador. More info at https://wengerdesigns.com/BeyondFurniture/Sundial/
Attachments
Quito South x.jpg
Quito South x.jpg (475.83 KiB) Viewed 782 times
Quito North x.jpg
Quito North x.jpg (477.73 KiB) Viewed 782 times
Quito East x.jpg
Quito East x.jpg (477.18 KiB) Viewed 782 times
Quito Top x.jpg
Quito Top x.jpg (475.03 KiB) Viewed 782 times
Last edited by DanielLeeWenger on Mon Jan 04, 2021 1:23 am, edited 1 time in total.
User avatar
johnwang
Posts: 578
Joined: Sun Jan 27, 2019 12:41 am

Re: World Globe with Precision Shore Lines

Postby johnwang » Mon Nov 09, 2020 7:37 pm

Cool.
hfc series CAE workbenches for FreeCAD (hfcNastran95, hfcMystran, hfcFrame3DD, hfcSU2 and more)