|
<< Click to Display Table of Contents >> Navigation: Input/Output > Coordinate conversion |
Converting coordinates from one CRS to another CRS
![]()
![]()
Coordinate conversion means transforming a point from one coordinate system (CRS) to another.
Two types:
1.Transformation (datum change, e.g., WGS84 → Indian 1954)
2.Projection (lat/lon → grid in meters, e.g., WGS84 → UTM)
Often both happen together.
What is CRS (Coordinate Reference System)?
A CRS defines how locations on Earth are described.
A CRS specifies:
•What shape of Earth you are using (datum/ellipsoid)
•How coordinates are measured (lat/lon, meters, etc.)
•What projection (if any) is used
•The area of validity
Types of CRS:
✔ Geographic CRS
•Uses latitude & longitude
•Units: degrees
•Example: EPSG:4326 (WGS84)
✔ Projected CRS
•Uses X, Y coordinates in meters
•Derived using a map projection
•Example: EPSG:32643 (WGS84 / UTM Zone 43N)
✔ Vertical CRS
•Heights: ellipsoidal or orthometric
•Example: EGM96 geoid height
In simple words, CRS = How you define and measure positions on Earth.
EPSG stands for European Petroleum Survey Group, now maintained by the OGP / IOGP Surveying & Positioning Committee.
EPSG maintains the world’s official database of:
•Coordinate Reference Systems (CRS)
•Map projections
•Datums
•Transformation methods
•Geoid models
Each CRS in the database has a unique EPSG code. For all EPSG codes, visit https://www.epsg.io
What is EPSG:4326?
It is ....
•WGS84 datum
•Latitude & Longitude in degrees
•Ellipsoidal coordinate system
•Used by GPS, Google Earth, mobile phones, etc.
What is PROJ4?
Proj4 (now simply called PROJ) is an open-source library used worldwide for:
•Map projections
•Datum transformations
•Coordinate conversions
•CRS (Coordinate Reference System) definitions
In simple words:
Proj4 is the mathematical engine that converts coordinates from one CRS to another.
It is the core behind many GIS and geospatial tools.
Proj4 string is a compact text-based formula that defines a coordinate system or map projection for PROJ, GIS tools, and geospatial workflows.
What is Datum?
A datum is the mathematical model of Earth used by a CRS.
A datum defines:
•The origin point
•The ellipsoid dimensions (size, shape of Earth)
•Orientation in 3D space
There are two main types:
✔ Geodetic Datum (for lat/lon)
Defines the shape of Earth:
•WGS84 (global)
•NAD83 (North America)
•Everest 1830 (India)
•GDA2020 (Australia)
✔ Vertical Datum (for heights)
Defines sea level:
•Mean Sea Level (MSL)
•EGM96
If two datums differ, coordinates differ even if projection is same.
Example:
•WGS84 vs Indian 1954 coordinates may differ by 100–300 m at same physical point.
What is Projection?
A map projection converts Earth’s curved surface (lat/lon) into a flat grid (X,Y).
All projections introduce distortion in:
•Area
•Shape
•Distance
•Direction
Common projections:
•UTM (Universal Transverse Mercator) → very common for engineering & seismic
•Mercator → web maps
•Lambert Conformal Conic → aviation weather
•Albers Equal Area → climate maps
Projection = Mathematical method to flatten the Earth.
How They Relate?
Think of it as a hierarchy:
DATUM → defines Earth's shape
↓
CRS → uses the datum, and may use a projection
↓
PROJECTION → converts lat/lon into X,Y (meters)
Example:
WGS84 (datum)
↓
EPSG:4326 (CRS, geographic, lat/lon)
↓
EPSG:32643 (CRS, projected using UTM zone 43N)
•CRS → the complete definition of how coordinates are expressed.
•Datum → the shape and size of Earth used for coordinates.
•Projection → the math that converts curved Earth (lat/lon) into flat maps (meters).
![]()
![]()
This parameter controls what source of coordinate data the module will process. Choose Trace headers to convert the X, Y, and Z coordinates stored in seismic trace headers (source, receiver, and bin positions). This is the standard mode when the module is connected in a seismic processing flow. Choose ASCII file to convert coordinates listed in a text file, which is useful when working with standalone geometry tables, well location lists, or any tabular data file that contains X/Y columns in a source CRS that must be re-expressed in a target CRS. The output converted file is written automatically alongside the input file with the suffix _out appended to the file name.


Browse to and select the input text file containing the coordinates to be converted. The file must be a plain-text format with the extension .txt or .ascii, with columns delimited by tabs, spaces, semicolons, or commas. After conversion, the module writes a new output file to the same folder as the input, using the same base name with _out appended before the extension (for example, coords_out.txt). Header rows above the Start row are copied unchanged to the output file.
Specifies the row number (1-based) at which coordinate data begins. All rows before this number are treated as header lines and are copied verbatim to the output file without coordinate conversion. Set this to 1 if the file contains no header. Set it to 2 or higher to skip label rows. For example, if your file has a single column-header row followed by data, set Start row to 2. Default: 1.
Enter the column number (1-based) that contains the X coordinate (easting or longitude) in the input file. The converted X value is written back to this same column in the output file. This field must be set to 1 or greater — the module will report an error if it remains at 0. Default: 0 (must be set by the user).
Enter the column number (1-based) that contains the Y coordinate (northing or latitude) in the input file. The converted Y value is written back to this same column in the output file. This field must be set to 1 or greater. Default: 0 (must be set by the user).
Enter the column number (1-based) that contains the elevation or Z value in the input file. This field is only required when Convert elevation is enabled. If Convert elevation is unchecked, this field is ignored and the Z column in the output file is left unchanged from the input. When Convert elevation is checked and Z column is left at 0, the module will report an error. Default: 0.
Sets the number of decimal places used when writing the converted X, Y, and Z coordinate values to the output file. For projected coordinates expressed in meters (such as UTM), 1 or 2 decimal places is typically sufficient. For geographic coordinates in decimal degrees (such as WGS84 latitude/longitude), use a higher value such as 6 or 7 to preserve the required positional precision. Default: 1.

![]()
![]()

Defines the coordinate reference system of the input data — that is, the CRS in which the source X, Y coordinates are currently expressed. The module offers two sub-parameters to specify this CRS:
Format — select how the input CRS will be specified: either by EPSG code or by a Proj4 string. Default: EPSG. Use EPSG when you have a standard code (e.g., 4326 for WGS84 geographic, 32643 for UTM Zone 43N). Use Proj4 when working with a non-standard or custom projection definition.
EPSG code — enter the numeric EPSG code that identifies the input CRS. Default: 4326 (WGS84 geographic latitude/longitude). After you enter a valid code, the read-only EPSG name field is populated automatically so you can verify the code corresponds to the expected coordinate system. Look up codes at https://www.epsg.io.
Proj4 string — visible only when Format is set to Proj4. Enter the full PROJ projection string that describes the input coordinate system (e.g., +proj=utm +zone=43 +datum=WGS84). This field accepts any valid PROJ library definition string.
Defines the coordinate reference system into which the coordinates will be converted. After processing, all output coordinates will be expressed in this CRS. The same Format/EPSG code/Proj4 string sub-parameters are available as for the Input CRS (see above). Default EPSG code: 4326. For example, if your seismic data was acquired using local survey coordinates referenced to a regional datum and you need to deliver results in WGS84 UTM, set the Input CRS to the original survey projection and the Output CRS to the target UTM zone EPSG code. The underlying transformation is performed by the PROJ coordinate transformation library using the proj.db coordinate system database.
When checked, the Z coordinate (elevation or depth value) is also transformed in addition to the horizontal X and Y positions. This is relevant when converting between CRS definitions that include a vertical component — for example, changing from ellipsoidal heights to orthometric (geoid-referenced) heights. Leave unchecked if your CRS transformation only affects horizontal positioning. When using ASCII file mode, enabling this option requires that the Z column index is also specified. Default: unchecked.
When checked, the X and Y output coordinates are swapped after conversion. Some coordinate systems and data formats store coordinates in Y, X (northing, easting) order rather than the conventional X, Y (easting, northing) order. Enable this option when the downstream software or file format expects coordinates in the opposite axis order. This swap is applied as a post-processing step after the CRS transformation. Default: unchecked.
![]()
![]()
When enabled, the output of this module is automatically passed as input to the next module in the processing flow. Disable this option if you want to insert a manual step between modules or if you need to inspect the converted data before further processing.
Controls how many CPU threads are used when processing in multi-threaded mode. Set this to a value lower than the total number of available threads on your machine to leave capacity for other processes. For most coordinate conversion tasks the computation is fast and the default value is sufficient.
When checked, this module is bypassed and its input data is passed through unchanged to the next module in the flow. Use this option to temporarily disable coordinate conversion without removing the module from your workflow, for example when testing the flow with data that is already in the correct CRS. Default: unchecked.
![]()
![]()
The output seismic data with all trace header coordinate fields (source X/Y, receiver X/Y, and bin X/Y) replaced by their transformed equivalents in the target CRS. The seismic amplitudes and all non-coordinate header fields are preserved without modification. Connect this output to downstream modules that require data in the target coordinate system.
This module has no custom action buttons. All processing is configured through the parameter panel and executed as part of the standard workflow.
![]()
![]()
In this example, we convert one CRS to another CRS. There won't be any Vista items available for this module. To QC, the user can use "QC trace geometry" module to verify the conversion.

In the input CRS, we've GDA94 datum and we would like to convert to GDA2020. So, we've provided the Input and Output EPSG codes and executed the module. It will convert all the x,y coordinates from GDA94 to GDA2020.

![]()
![]()
There are no action items available for this module.
![]()
![]()
YouTube video lesson, click here to open [VIDEO IN PROCESS...]
![]()
![]()
Yilmaz. O., 1987, Seismic data processing: Society of Exploration Geophysicist
* * * If you have any questions, please send an e-mail to: support@geomage.com * * *
![]()