WGS84 is natively XYZ, like the International Terrestrial Reference Frames (ITRF), and you can use an ellipsoid model to convert to latitude, longitude, and ellipsoidal height. Ellipsoidal heights aren't very useful. Water can flow up here, and it doesn't reflect the terrain at all.
A geoid, kinda sorta, is the surface you would get if there were tubes running under all the continents so that the oceans could settle equally everywhere (no tides, no rotation, etc.). An ultimate mean sea level.
It's much more useful to convert to geoidal heights using a model that contains the offsets between the ellipsoid surface and the geoid surface. That way your data better reflects the terrain, water flows downhill, etc.
The US GPS system does use WGS84 which makes it interesting because normal consumers don't have access to WGS84 control points or CORS stations to RTK or post-process the data as accurately as it could be. That information's only available to US military members, maybe some NATO or other allied personnel who have security clearances.
Other GNSS systems do not use WGS84. The Glonass system uses PZ-90. BeiDou may use CGJ-02.
Suppose I decided my house was the centre of everything and I wanted to define a coordinate system based on my house. I'd call this the Baz2017 Geodetic CRS. Now I need to define the Prime Meridian for Baz2017, and that will be the line going through the exact centre of my front door. That is now the Baz2017 Prime Meridian. Next I'll measure the shape of the earth... okay, its 1276 furlongs in radius (I may be way off here, but the Baz2017 Geodetic Consortium is not known for its accuracy) and the earth is clearly banana-shaped with various parameters, so that defines the Baz2017 Ellipsoid (which is really a Bananaoid, but no matter).
The Baz2017 CRS is valid for the whole world, and there's an EPSG code for that, Area of use EPSG 1262, so we'll use that. If Baz2017 coordinates were only valid for a range of 200m from my house, I'd have to define a new Area-of-use, the Baz2017 Area-of-use, and try and get an EPSG code for that.
So here you can see I've used "Baz2017" several times to refer to different components of the coordinate system, in the same way that WGS84 is used formally in your diagram. Informally, I can say "My address is (0,0) in Baz2017 coordinates" and I'm referring to the CRS as a whole. If I want to refer to the ellipsoid or other components, I'd probably be more explicit.
Do not use Baz2017 coordinates for navigation.
Best Answer
The question was missing a little bit of info but with the dataset in hand, I was able to roughly find out what was going on.
First off, each point is actually composed of 6 different points that each contain a single attribute that belongs to the actual point, which is the one in the middle:
You need to isolate the true point with the tool Extract by attribute from the Processing Toolbox:
original layer
Layer
=
0
The resulting layer can be renamed Points. This tool can be repeated twice, with Value:
ID_punto
andQuota
. The resulting layers can be renamed to match the values.Next, use the Join attributes by nearest tool:
Points
Quota
Text
Quota_
1
Do this one more time, but in the input layer, use the resulting layer from the previous join attributes so that all the text fields from the surrounding 2 points are added to the true point. Rename the resulting layer to something like Cleaned points.
This cleaned points layer will have many useless fields, so these can be deleted to only keep the 2 important ones like so:
The next step is to create two fields containing the X and Y coordinates, relative to your point with known real world coordinates. In the attribute table, go to the Field Calculator:
Rel_X
Decimal
0
round($x - x(geometry( get_feature( 'Cleaned points','ID_Text','1'))),4)
The result is the rounded (to 4 decimals) distance to the main point in map units along the X axis. Repeat this step to create a field called
Rel_Y
, replacing all thex
mentions toy
. The table should look something like this:We know the geographic coordinates of the point with ID:
1
, which is:Using epsg.io, transform this to UTM Zone 41N (epsg:32641):
618718.05
4396498.45
Create two fields, X and Y, in the attribute table (Decimal). For the point with ID
1
, paste the corresponding values. Now we can use the field calculator again to find every point's true coordinate in EPSG:32641:X
round(attribute(get_feature('Cleaned points','ID_Text','1'),'X') + attribute('Rel_X'),4)
Repeat for the field Y, and now you have a relatively precise location for each of your points. You can now export this layer as a CSV table.
Import that table as a CSV source. In geometry definition:
X
columnY
columnEPSG:32641
The added layer is now positioned correcly on Earth (following the assumptions I made). If you want to use it in applications where only geographical coordinates are supported like Google Earth or on Mapbox, for example, export this layer using WGS84 as the output CRS. The result looks like this:
If my assumptions were wrong and the survey's axes were not aligned with geographical north, additional trig steps would be required to get correct coordinates.