107

I have a Shapefile but its coordinate system is Unknown, and there is no *.prj file.

How can I identify it now?

0

16 Answers 16

54

There's always the "brute force" method:

  1. Take a layer with a known coordinate system that is supposed to overlay with your unknown layer.

  2. Now make some educated guesses on what projection the unknown layer could be. (UTM, Plate Carree, etc). Project your known coordinate system layer into each projection until you find one that matches the unknown layer as much as possible.

4
  • 2
    this is my method also. I utilize two different software to "prove" it. You might also peruse this question for some basic direction on projections. gis.stackexchange.com/questions/2769/…
    – Brad Nesom
    Commented Mar 28, 2011 at 20:16
  • 7
    You could simplify step 2 a little by just changing the dataframe (ArcMap) projection, and letting the known layer reproject on the fly. Commented Mar 28, 2011 at 20:50
  • 14
    Note that you shouldn't be projecting the data. You should be defining the projection. Projecting the data changes the coordinates. Defining the projection just assigns a projection to that data and tells that software what projection the data is already in. These are two different tools in ArcMap, "Define Projection" is the one you want to use.
    – Sean
    Commented Aug 31, 2011 at 12:36
  • 1
    I prefer read the coordinate values, I can usually tell if they are decimal degrees, meters or feet (harder t distinguish) and then move to the best system. Start with WGS 84 if it appears decimal, UTM if meters, State plane if feet. I once had one that nobody could fix (for gravitational anomalies). It was USA state plane with a linear unit of......kilometers. I could tell from the fact it was close I had the system right but the state was tiny, ahh kilometers was the linear unit. Commented Feb 24, 2019 at 2:44
35

I'm promoting comments by Mapperz and Brandon Copeland by adding an answer that uses their technique.

  1. If you have ArcGIS Desktop, add some reference data that covers the same area to ArcMap. This reference data must have a valid coordinate system (projection) definition.
  2. Add the data in an unknown coordinate system.
  3. Research what possible coordinate systems are used in this area. One place to check is the EPSG Registry.
  4. Set the data frame's coordinate system to the possibilities. If the data-with-a-known-coordsys line up with the data-without-a-known-coordsys, you've probably identified the coordinate system.

This technique takes advantage of the fact that ArcMap can convert data to a new coordinate system in-memory. The data-without-a-known-coordsys cannot be converted so it's just displayed. By projecting the known data in-memory, we can see quickly what coordinates it has in the various possible coordinate systems.

5
  • 5
    Side note: In QGIS reprojecting in-memory is called "on-the-fly".
    – underdark
    Commented Mar 29, 2011 at 6:08
  • 3
    It's called 'on-the-fly' in ArcGIS as well! I keep finding a lot of people who don't understand that phrase though, so I've been trying to use 'in-memory' instead.
    – mkennedy
    Commented Mar 29, 2011 at 22:32
  • Is this link still valid ? Seems a bit more convoluted than how I remember it, however there is this epsg-registry.org
    – GISHuman
    Commented Jan 24, 2018 at 21:20
  • 1
    @GISKid You're right. I think the epsg-registry.org website post-dates when I wrote this answer. I'll update.
    – mkennedy
    Commented Jan 24, 2018 at 21:47
  • 1
    Another great resource: epsg.io
    – GISHuman
    Commented Jul 26, 2018 at 16:17
34

Since this question never gets old, I built a site that does the Brute Force method. If you drag a zipped shp+shx onto the map it will map it in every coordinate system available in PostGIS. Assuming you know what "correct" looks like, you can zoom to that area and click on the polygon to get the .prj file from epsg.io.

1
  • 22
    outstanding idea, but I think the website it is not really working Commented Sep 12, 2016 at 21:43
25

I really love this web tool: http://projfinder.com/ .

Get some X,Y coordinates from your unkown file, Zoom to approximately the same place on the globe, paste in your coordinates, and let it guess.

3
  • This is actually the best tool I've found. Guesswork in ArcMap isn't really useful in the long run or if you don't know what it should be. Can't help with homebrew coordinate systems and lack of one completely, but who can!
    – Martin
    Commented Mar 14, 2016 at 11:28
  • 1
    Too bad it is no longer working -- anybody know whom to contact?
    – sventechie
    Commented Jul 11, 2018 at 19:49
  • 1
    @sventechie it's working for me today Commented Jul 21, 2020 at 21:49
24

At my last job, I had a layer of Geology data (polygon) named "FSU_Geol.shp". My boss gave it to me and asked me to find out a number of things. First off, he was handed this shapefile by the client, and there was no .prj file, so he wanted me to figure that out. He also wanted me to figure out what the categories of Geology were. I could go on-and-on, but let's cut to the chase .... I googled it, and I ended up HERE.

The acronym in the naming convention stood for "surface Geology of the Former Soviet Union", and the Google search led me "directly" to the source (USGS). Everything I could ever need to know about this shapefile was at the top link I hit. I'm not saying that Google can find anything & everything, but I was fresh out of university, and just taking a "shot in the dark", and look at the feedback I got!

In another instance, someone in the office had downloaded a number of shapefiles using a batch function. I don't remember the name of the software package at the moment, but the .prj files were missing. I simply went in to the metadata in ArcCatalog, and I actually found my answer in there. Again, don't quote me, but I think there was a URL to the source in there.

Ever since that day, I "start" with a google search if there's no clue in the metadata!

23

There are two great links from Esri that go into detail on this:

1
20

Ask the producer.

If you know common CRS for your geographic region, you can try some of them. But asking is better.

1
  • 1
    I cannot advocate this method high enough. One might be able to figure out the zone based on ballpark figures of eastings and northings but there are so many projections that are similar but not quite (e.g. every time one projection is superceded by another like GDA94 -> GDA2020). A guess will always be just a guess and one cannot make accurate inferences based on a guess. Spatial data that can't be geolocated is often better discarded. Commented Aug 19, 2021 at 4:23
17

Not a tool (I don't know of one in existence that would let you do that), but check out @mkennedy's reply to How would I convert this point to WKID 4326?. She explains how she arrived at the correct spatial reference. SpatialReference.org and patience will be your friends.

Additionally, Esri provides a guide on how to guess a coordinate system (though I prefer mkennedy's method if you know a bit more about the data).

14

The best answer I've found to this question is non-technical: find out where your data came from. Agencies and organizations tend to be consistent with their use of projections. Know it came from your state DOT? Look at the rest of their data and see what it tells you. Don't know where it came from? An educated guess is just as likely to send you down the right road.

At least it makes tackling the problem with brute force a little more do-able!

1
  • An educated guess might send you down the right road, but your just as likely as not to be driving on the wrong side of the road. Commented Aug 19, 2021 at 4:24
12

Seriously outdated at this point, but Werner Flacke and Birgit Klaus posted Find Projection on ArcScripts in 2007. I don't think the source code is there, unfortunately. It's VBA-based so only usable in ArcGIS Desktop v9.2 and possibly 9.3. It does include two shapefiles with the areas of interest from the EPSG Geodetic Parameter Dataset which could be used to narrow the possibilities.

Blue Marble Geographic Calculator and Geographic Transformer have coordinate system recovery tools.

1
  • Thanks for the tip Melita. The code is there (*.frm). The license is public domain. PrjFinder is a companion to the book "Working with Projections and Datum Transformations in ArcGIS" (2006). Commented Aug 30, 2011 at 22:27
6

To add to the other responses in this post, I would add the following:

How To: Identify an unknown projected coordinate system using ArcMap

Provide a specific check on NAD1927

If the coordinates are in decimal degrees, such as between longitude -180 and +180, and latitude -90 and +90, identify the Geographic Coordinate System (datum) used for the data. Prior to version 9.2, ArcMap assigns GCS_Assumed_Geographic_1 to the data, by default. This places the data on the NAD_1927 datum

In addition

If the data is in the United States and shows an extent in which the coordinates to the left of the decimal are 6, 7 or 8 digits, the data is probably projected to the State Plane or UTM coordinate systems.

FAQ: Projection Basics: What the GIS professional needs to know

This page provides several checks on determining projections which is important in assisting in trying to identify an unknown coordinate system.

The following concepts are fundamental to understanding the use of map projections in ArcGIS. Please note though that the topic of projections is extremely broad, and this article can do no more than touch on a few important topics.

  1. Coordinate systems, also known as map projections, are arbitrary designations for spatial data. Their purpose is to provide a common basis for communication about a particular place or area on the earth's surface. The most critical issue in dealing with map projections is knowing what the projection is and having the correct coordinate system information associated with a dataset.

  2. When the first map projections were devised, it was assumed, incorrectly, that the earth was flat. Later the assumption was revised, and the earth was assumed to be a perfect sphere. In the 18th century, people began to realize that the earth was not perfectly round. This was the beginning of the concept of the cartographic spheroid.

  3. To more accurately represent locations on the earth's surface, map makers studied the shape of the earth (geodesy) and created the concept of the spheroid. Then geographic coordinate systems (GCS) were devised, which include a datum, units of measure, and a prime meridian. A datum links a spheroid to a particular portion of the earth's surface. Recent datums are designed to fit the entire earth's surface well.

  4. The most commonly used datums in North America are:

• NAD 1927 (North American Datum 1927) using the Clarke 1866 spheroid
• NAD 1983 (North American Datum 1983) using the GRS 1980 spheroid
• WGS 1984 (World Geodetic Survey 1984) using the WGS 1984 spheroid

Newer spheroids are developed from satellite measurements and are more accurate than those developed by Clarke in 1866. The terms 'geographic coordinate system' and 'datum' are used interchangeably, but as noted above, a GCS includes a datum, spheroid, units of measure and a prime meridian.

  1. The coordinates for data change depending on the datum and spheroid on which those coordinates are based, even if they are using the same map projection and parameters.

For example, the geographic coordinates below are for a single point located within the city of Bellingham, Washington, using 3 different datums:

Code: DATUM X-Coordinate Y-Coordinate NAD_1927 -122.466903686523 48.7440490722656 NAD_1983 -122.46818353793 48.7438798543649 WGS_1984 -122.46818353793 48.7438798534299

  1. A principle of good data management is to obtain the projection parameters from the data source providing the data. Do not make an educated guess about the projection of data, because an inaccurate GIS database will be the result. The necessary parameters are the following:

• Projection
• Units of measure
• ZONE (for UTM)
• FIPS zone (for State Plane)
• Datum

Other parameters may be required, depending on the projection. For example, Albers and Lambert projections require the following parameters:

• 1st standard parallel, in degrees, minutes and seconds (DMS)
• 2nd standard parallel (DMS)
• Central meridian (DMS)
• Latitude of projections origin (DMS)
• False easting and units of measure
• False northing and units of measure
• X-shift and units of measure
• Y-shift and units of measure

0
5

Try the ogrinfo program supplied as part of GDAL.

See How to access Shapefile metadata using OGR?

So ogrinfo might not give you the projection information without a .prj file, but it is still a useful tool to help you investigate the list of potential projections.

For example:

Geometry: Polygon
Feature Count: 269 
Extent: (320000.000000, 505000.000000) - (323000.000000, 511000.000000) 

This response suggests to me the shapefile is using a reference system based on meters and not on degrees.

Assuming you know where the data is roughly from, you now have a shorter list of possible projections.

Other best practices might be to:

  • Ask the people who gave you the data in the first place, even if they don't know exactly they should have a list of possible projections that could look at in the first instance.
  • Look to see if there is any associated metadata.

It is probably better to start from some position of knowns, rather than try and brute force from scratch.

2
  • 1
    This doesn't answer the question that was asked.
    – Dan C
    Commented Mar 12, 2014 at 21:02
  • 1
    If there is no prj file, hen ogrinfo will return no results for the coordinate system information. Commented Mar 13, 2014 at 2:59
3

Look at this website:

http://www.egger-gis.at/shapefile-projectionfinder/

I am the developer of this free tool. Maybe this tool can help you to find and define the correct projection of your shapefile. It is basing on the idea of http://projfinder.com/ by Aaron Racicot.

You can aslo try this special solutions for:

Austria (German): https://www.data.gv.at/anwendungen/checkaustrianprojection/

Australia: https://maegger.github.io/map_australia.html

UTM - Zones: https://maegger.github.io/map_utm.html

1
  • Just adding github.com/stevage/whattheproj which does a pretty similar thing to projfinder.com . Doesn't have the map, but also has no external dependencies so may survive forever. :) Commented Aug 12, 2021 at 1:25
3

I had the same problem while I was working on my project (DEMs). One of the DEM was unknown coordinates and cannot be projected, so I did the 'georeferencing' utilizing of Georeferencing tool in ArcMap. After Georeferencing, you'll get your prj.file.

0

You could discriminate between geographical and cartography coordinate, the first lat/lon are in degree the second North/East are in meters If the file are shape you could dump the coordinates of the geometry with shapelib-1.3.0 and see the values then ...

0

You can do it with Fiona.

    import fiona as f
    a = fiona.open("C:\QGIS_ShapeFile\qgis\shafile_XXX.shp")
    print(a.crs)

You will get answer as

    {'init': 'epsg:4326'}
4
  • 1
    Are you sure that will work without a .prj file ? how will Fiona know ?
    – J.R
    Commented Oct 15, 2019 at 11:34
  • No without .prj file, it won't work Commented Oct 17, 2019 at 4:50
  • Then you did not read the question and are wasting everyone's time by posting. Commented Aug 19, 2021 at 4:26
  • This is still useful. Small mistake it should be import fiona as f a = f.open("C:\QGIS_ShapeFile\qgis\shafile_XXX.shp") print(a.crs) Commented Sep 19, 2023 at 8:01

Not the answer you're looking for? Browse other questions tagged or ask your own question.