google / earthenterprise

Google Earth Enterprise - Open Source
Apache License 2.0
2.66k stars 882 forks source link

Looking to fork google earth to be able to change earth's radius and overlays with time (millions of years) #1867

Open dehilsterlexis opened 3 years ago

dehilsterlexis commented 3 years ago

We are a group of geologists, scientists, engineers and computer programmers who are looking to fork the google earth software to modify it in order to be able to change the earth's radius with time and be able to plot flora and fauna and geological information on it. For example, 200 million years ago the earth's diameter was about half the size. We want to be able to change the time on the model and therefore the radius and its overlays. This will allow many scientists around the world to see new relationships in geology, paleontology, biology, and much more using the theory expansion tectonics. I am wanting some guidance as how to do this. I am a computer programmer by trade for over 30 years and I world be leading the effort.

Guidance and suggestions appreciated!

EarthRadius

tst-lsavoie commented 3 years ago

@dehilsterlexis I haven't spent a lot of time in this part of the code but the Earth's radius is likely a constant in the code. Open GEE does have time-enabled databases that allow you to look through historical imagery, but we definitely don't have anything that would let you change the radius of the Earth over time. You'd have to add that to the database format somehow. So, to directly answer your questions:

dehilsterlexis commented 3 years ago

@tst-lsavoie thank you for the response! The first answer is the most important. I did expect that the database would have to have an added column for time. Hard, I did expect that.

Question back to you: could you elaborate on what "write your own client" entails? I am a computer programmer by trade so you can get technical.

tst-lsavoie commented 3 years ago

First, we've got some overloaded terminology: the file format Open GEE uses to store it's globes and maps is called a database, even though it's not an actual relational database. So that's what I'm talking about here.

Briefly, Open GEE consists of 3 parts: Fusion (which builds globes and maps, then pushes them to server), Server (which makes globes and maps available to clients - basically Apache + modifications), and Earth Client (which connects to server and displays globes to the user). Fusion and Server are open source and in this repo, but Earth Client is closed and maintained by Google. Your change will require updates to all 3. Since the client is closed, that means writing your own. There are open source libraries that can be used to create a client without much effort, like CesiumJS (not directly affiliated with Open GEE). We have a possibly out-of-date wiki page with an example.

FWIW, there's also a web-based client that only handles 2D maps included in this repo, but it's in minified JavaScript.

I'd highly recommend running through the Fusion tutorial. That will give you a good feel for how the pieces work together and what they can do. There are also some tutorial videos you can look at.

Also, it occurred to me that dates are most likely stored as seconds since the Unix Epoch, so you may need to change that, too.

shiped commented 3 years ago

So, in the Earth Client, when you change to Mars or Moon, are they just fuse the mars &/ moon imagery over the same globe? (there are stupid questions despite what is said...) It looks to me like it probably uses the earth's dimensions. Maybe they transformed the extents of Mars imagery to fit.

On Fri, Jan 29, 2021 at 11:34 AM Lee Savoie notifications@github.com wrote:

First, we've got some overloaded terminology: the file format Open GEE uses to store it's globes and maps is called a database, even though it's not an actual relational database. So that's what I'm talking about here.

Briefly, Open GEE consists of 3 parts: Fusion (which builds globes and maps, then pushes them to server), Server (which makes globes and maps available to clients - basically Apache + modifications), and Earth Client https://github.com/google/earthenterprise/wiki (which connects to server and displays globes to the user). Fusion and Server are open source and in this repo, but Earth Client is closed and maintained by Google. Your change will require updates to all 3. Since the client is closed, that means writing your own. There are open source libraries that can be used to create a client without much effort, like CesiumJS https://cesium.com/cesiumjs/ (not directly affiliated with Open GEE). We have a possibly out-of-date wiki page with an example https://github.com/google/earthenterprise/wiki/Cesium-3D-Client-Library.

FWIW, there's also a web-based client that only handles 2D maps included in this repo, but it's in minified JavaScript.

I'd highly recommend running through the Fusion tutorial http://www.opengee.org/geedocs/5.3.7/answer/fusionTutorial.html. That will give you a good feel for how the pieces work together and what they can do. There are also some tutorial videos https://github.com/google/earthenterprise/wiki/Video-Tutorials you can look at.

Also, it occurred to me that dates are most likely stored as seconds since the Unix Epoch, so you may need to change that, too.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/google/earthenterprise/issues/1867#issuecomment-769911104, or unsubscribe https://github.com/notifications/unsubscribe-auth/AGP5LRLMFPKVFQ6J6NZ4RPTS4LPRJANCNFSM4T4ZJCBA .

-- Eddy Shipman

tst-lsavoie commented 3 years ago

Unfortunately I don't know how Mars/the Moon are handled. There are some references to it in the Open GEE code (https://github.com/google/earthenterprise/blob/3fef26026b931f75b89c9ab4645070bd8bd159c4/earth_enterprise/src/fusion/rasterfuse/TmeshGenerator.cpp#L29), but I don't know if Open GEE as-is supports Mars or the Moon. I have no visibility into the Earth Client code so I can't tell you anything about how the client handles it.