GeoVectorXYZ[loc{vX,vY,vZ}]
represents a three-dimensional vector of Cartesian components vX, vY, vZ in an orthonormal frame parallel to the geocentric frame, at location loc.
GeoVectorXYZ[{loc1,loc2,…}{vec1,vec2,…}]
represents a collection of vectors veci at respective geo locations loci.
GeoVectorXYZ[{loc1vec1,loc2vec2,…}]
represents the same collection of vectors.
GeoVectorXYZ[vec]
represents a geo vector whose associated location has been implicitly specified.
GeoVectorXYZ
GeoVectorXYZ[loc{vX,vY,vZ}]
represents a three-dimensional vector of Cartesian components vX, vY, vZ in an orthonormal frame parallel to the geocentric frame, at location loc.
GeoVectorXYZ[{loc1,loc2,…}{vec1,vec2,…}]
represents a collection of vectors veci at respective geo locations loci.
GeoVectorXYZ[{loc1vec1,loc2vec2,…}]
represents the same collection of vectors.
GeoVectorXYZ[vec]
represents a geo vector whose associated location has been implicitly specified.
Details
- GeoVectorXYZ[…] can represent any vectorial magnitude on the surface of the Earth or any other celestial globe, like wind speed, magnetic field, scalar gradients, etc.
- GeoVectorXYZ describes data using an orthonormal frame of fixed orientation with respect to the ambient 3D space, but origin at the given location.
- GeoVectorXYZ acts both as a vector data container and as a converter from other types of geo vector data, like GeoVector or GeoGridVector.
- In GeoVectorXYZ[locvec], the components of the vector vec can be quantities, but their units must be compatible.
- In GeoVectorXYZ[locvec], the location loc can be given as a {lat,lon} pair in degrees, a geo Entity object or any geo location object with head GeoPosition or similar.
- GeoVectorXYZ[…][prop] gives the specified property of a geo vector.
- Possible properties include:
-
"Count" number of vectors in the GeoVectorXYZ object "Data" first argument of the GeoVectorXYZ object "Depth" vector depth: 0 for a single vector, 1 for a list of them, … "Location" location data of the GeoVectorXYZ object "LocationDimension" number of coordinates for each position "LocationPackingType" Integer or Real if positions are packed; None otherwise "Vector" vector data of the GeoVectorXYZ object "VectorDimension" number of components for each vector "VectorPackingType" Integer or Real if vectors are packed; None otherwise
Examples
open all close allBasic Examples (2)
Construct a unit vector along Earth's Z axis, located at Chicago:
GeoVectorXYZ[Entity["City", {"Chicago", "Illinois", "UnitedStates"}] -> {0, 0, 1}]Compute its GeoVector form, with respect to the tangent plane at Chicago:
GeoVector[%]Reconstruct the XYZ form of the vector, with respect to the global XYZ frame of the Earth:
GeoVectorXYZ[%]Take five random locations in the world:
pos = RandomGeoPosition["World", 5]Compute the magnetic field at those locations and convert it into GeoVectorXYZ form:
geov = GeoVectorXYZ[GeomagneticModelData[pos, GeoVector]]Extract the XYZ components of those vectors:
geov["Vector"]//NormalScope (8)
Data Specification (4)
Specify the location of a geo vector as a {lat,lon} pair in degrees:
GeoVectorXYZ[{20, -50} -> {1, 2, 3}]Construct a 3D velocity vector with three identical components at Chicago:
xyz = GeoVectorXYZ[Entity["City", {"Chicago", "Illinois", "UnitedStates"}] -> Quantity[{10, 10, 10}, "Miles" / "Hours"]]Rewrite the location as a geo position object with any head:
GeoPosition[xyz]GeoPositionXYZ[xyz]GeoGridPosition[xyz, "Mercator"]Anything that can be interpreted by GeoPosition can be used as a location:
GeoVectorXYZ["12d 3m 4.5s N, 123d 58m 3.2s W" -> {1, 2, 3}]//GeoPositionGeoVectorXYZ["NullIsland" -> {1, 2, 3}]//GeoPositionWork with 3D vectors of any unit dimension:
GeoVectorXYZ[{20, -50} -> {1, 1 / 2, Sqrt[3]}]GeoVectorXYZ[{20, -50} -> Quantity[{2, -3, 8}, "Meters" / "Seconds"]]GeoVectorXYZ[{20, -50} -> Quantity[{-4, 5, -1}, "Meters" / "Seconds" ^ 2]]Geo Vector Arrays (3)
Specify a GeoVectorXYZ object of two vectors at the given locations:
GeoVectorXYZ[{GeoPosition[{30, -40}] -> {0.28, 0.51, -0.94}, GeoPosition[{-20, -150}] -> {0.20, -0.65, 0.42}}]This is an alternative way to specify the same data:
GeoVectorXYZ[GeoPosition[{{30, -40}, {-20, -150}}] -> {{0.28, 0.51, -0.94}, {0.20, -0.65, 0.42}}]Specify gravitational field data simultaneously for several locations:
GeogravityModelData[{Entity["City", {"London", "GreaterLondon", "UnitedKingdom"}], Entity["City", {"Paris", "IleDeFrance", "France"}], Entity["City", {"Amsterdam", "NoordHolland", "Netherlands"}], Entity["City", {"Berlin", "Berlin", "Germany"}]}, GeoVector]Rewrite as a single geo vector array with XYZ components:
GeoVectorXYZ[%]Represent the very small horizontal components in a map:
GeoGraphics[GeoMarker[%, {"Dart", "Circle"}], GeoRange -> {{47, 54}, {-2, 16}}]Generate a million random 3D Cartesian vectors at respective random locations:
gvxyz = GeoVectorXYZ[RandomGeoPosition[10 ^ 6] -> QuantityArray[RandomReal[{-1, 1}, {10 ^ 6, 3}], "Meters"]]AbsoluteTiming[gv = GeoVector[gvxyz]]Use GeoVectorXYZ to transform them back to their 3D Cartesian form:
AbsoluteTiming[newgvxyz = GeoVectorXYZ[gv]]Check that the difference is just numerical error:
CoordinateBounds[newgvxyz["Vector"] - gvxyz["Vector"]]Data Extraction (1)
A wind velocity vector at Chicago, expressed in XYZ components:
gvxyz = GeoVectorXYZ[Entity["City", {"Chicago", "Illinois", "UnitedStates"}] -> Quantity[{4.13, -1.4, -1.75}, "Miles" / "Hours"]]Extract the location of the geo vector:
gvxyz["Location"]Extract the vector data from the geo vector:
gvxyz["Vector"]gvxyz["LocationVectorRule"]gvxyz["Properties"]AssociationMap[gvxyz, %]//Normal//ColumnApplications (2)
Construct two north-pointing vectors at different locations:
vChicago = GeoVector[Entity["City", {"Chicago", "Illinois", "UnitedStates"}] -> {1, 0}]vLondon = GeoVector[Entity["City", {"London", "GreaterLondon", "UnitedKingdom"}] -> {1, 0}]Their GeoVectorXYZ forms have different components due to their different orientations in 3D space:
vxyzChicago = GeoVectorXYZ[vChicago]vxyzLondon = GeoVectorXYZ[vLondon]This is the angle in degrees formed by those two vectors in 3D space:
VectorAngle[vxyzChicago["Vector"], vxyzLondon["Vector"]] / DegreeTake 50 random locations in the world:
pos = RandomGeoPosition["World", 50]Compute the magnetic field at those locations and convert it into GeoVectorXYZ form:
geov = GeoVectorXYZ[GeomagneticModelData[pos, GeoVector]]Extract the 3D coordinates of the locations and the 3D components of the vectors, in numeric form:
xyz = GeoPositionXYZ[pos]["XYZ"];
vxyz = QuantityMagnitude[geov["Vector"], "Nanoteslas"];Draw 3D arrows for those vectors:
Graphics3D[MapThread[Arrow[{#1, #1 + 40 #2}]&, {xyz, vxyz}]]Properties & Relations (3)
Convert a GeoVectorXYZ expression into other types of geo vectors:
gv = GeoVectorXYZ[Entity["City", {"Chicago", "Illinois", "UnitedStates"}] -> Quantity[{4.13, -1.4, -1.75}, "Miles" / "Hours"]]GeoVector[gv]GeoVectorENU[gv]GeoGridVector[gv, "Albers"]Convert back to GeoVectorXYZ form:
GeoVectorXYZ[%]Converting a geo vector into GeoVectorXYZ form does not convert its location into GeoPositionXYZ form:
GeoVector[Here -> {10, 30, 0}]GeoVectorXYZ[%]Use GeoPositionXYZ explicitly to convert the location:
GeoPositionXYZ[%]GeoPositionXYZ[{x,y,z}] represents a positional vector from the center of the Earth, in meters:
here = GeoPositionXYZ[Here]You can have a tangent vector with the same components at the same location:
v = GeoVectorXYZ[here -> Quantity[here["XYZ"], "Meters"]]Transforming to ENU geo vector form shows that the vector is almost vertical, except for a south component due to the oblateness of the Earth:
GeoVectorENU[%]Those components can also be computed (modulo sign) using GeoPositionENU:
GeoPositionENU[GeoPositionXYZ[{0, 0, 0}], Here]Related Guides
-
▪
- Geodesy
History
Text
Wolfram Research (2019), GeoVectorXYZ, Wolfram Language function, https://reference.wolfram.com/language/ref/GeoVectorXYZ.html.
CMS
Wolfram Language. 2019. "GeoVectorXYZ." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/GeoVectorXYZ.html.
APA
Wolfram Language. (2019). GeoVectorXYZ. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/GeoVectorXYZ.html
BibTeX
@misc{reference.wolfram_2026_geovectorxyz, author="Wolfram Research", title="{GeoVectorXYZ}", year="2019", howpublished="\url{https://reference.wolfram.com/language/ref/GeoVectorXYZ.html}", note=[Accessed: 12-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_geovectorxyz, organization={Wolfram Research}, title={GeoVectorXYZ}, year={2019}, url={https://reference.wolfram.com/language/ref/GeoVectorXYZ.html}, note=[Accessed: 12-June-2026]}