How to Identify Coordinate System (CRS) from projection file using Python
I am working on many shapefiles (their corresponding projection files are also presented).
Every shapefile has a different Coordinate System, so it becomes difficult to plot these in a generic manner.
How can I identify with Python what is the CRS used in the shapefile?
For example, the ".prj"
file for some shapefiles is given below, but I am not able to identify what is the CRS to be used.
GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]]
GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]]
GEOGCS["WGS84(DD)", DATUM["WGS84", SPHEROID["WGS84", 6378137.0, 298.257223563]], PRIMEM["Greenwich", 0.0], UNIT["degree", 0.017453292519943295], AXIS["Geodetic longitude", EAST], AXIS["Geodetic latitude", NORTH]]
GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]]
GEOGCS["WGS84(DD)", DATUM["WGS84", SPHEROID["WGS84", 6378137.0, 298.257223563]], PRIMEM["Greenwich", 0.0], UNIT["degree", 0.017453292519943295], AXIS["Geodetic longitude", EAST], AXIS["Geodetic latitude", NORTH]]
python coordinate-system shapefile
add a comment |
I am working on many shapefiles (their corresponding projection files are also presented).
Every shapefile has a different Coordinate System, so it becomes difficult to plot these in a generic manner.
How can I identify with Python what is the CRS used in the shapefile?
For example, the ".prj"
file for some shapefiles is given below, but I am not able to identify what is the CRS to be used.
GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]]
GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]]
GEOGCS["WGS84(DD)", DATUM["WGS84", SPHEROID["WGS84", 6378137.0, 298.257223563]], PRIMEM["Greenwich", 0.0], UNIT["degree", 0.017453292519943295], AXIS["Geodetic longitude", EAST], AXIS["Geodetic latitude", NORTH]]
GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]]
GEOGCS["WGS84(DD)", DATUM["WGS84", SPHEROID["WGS84", 6378137.0, 298.257223563]], PRIMEM["Greenwich", 0.0], UNIT["degree", 0.017453292519943295], AXIS["Geodetic longitude", EAST], AXIS["Geodetic latitude", NORTH]]
python coordinate-system shapefile
1
Which python library or tools do you use to read your shapefile?
– YoLecomte
Nov 27 '18 at 11:21
I have tried GeoPandas, Shapely, and Fionna
– userxxx
Nov 27 '18 at 11:34
add a comment |
I am working on many shapefiles (their corresponding projection files are also presented).
Every shapefile has a different Coordinate System, so it becomes difficult to plot these in a generic manner.
How can I identify with Python what is the CRS used in the shapefile?
For example, the ".prj"
file for some shapefiles is given below, but I am not able to identify what is the CRS to be used.
GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]]
GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]]
GEOGCS["WGS84(DD)", DATUM["WGS84", SPHEROID["WGS84", 6378137.0, 298.257223563]], PRIMEM["Greenwich", 0.0], UNIT["degree", 0.017453292519943295], AXIS["Geodetic longitude", EAST], AXIS["Geodetic latitude", NORTH]]
GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]]
GEOGCS["WGS84(DD)", DATUM["WGS84", SPHEROID["WGS84", 6378137.0, 298.257223563]], PRIMEM["Greenwich", 0.0], UNIT["degree", 0.017453292519943295], AXIS["Geodetic longitude", EAST], AXIS["Geodetic latitude", NORTH]]
python coordinate-system shapefile
I am working on many shapefiles (their corresponding projection files are also presented).
Every shapefile has a different Coordinate System, so it becomes difficult to plot these in a generic manner.
How can I identify with Python what is the CRS used in the shapefile?
For example, the ".prj"
file for some shapefiles is given below, but I am not able to identify what is the CRS to be used.
GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]]
GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]]
GEOGCS["WGS84(DD)", DATUM["WGS84", SPHEROID["WGS84", 6378137.0, 298.257223563]], PRIMEM["Greenwich", 0.0], UNIT["degree", 0.017453292519943295], AXIS["Geodetic longitude", EAST], AXIS["Geodetic latitude", NORTH]]
GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]]
GEOGCS["WGS84(DD)", DATUM["WGS84", SPHEROID["WGS84", 6378137.0, 298.257223563]], PRIMEM["Greenwich", 0.0], UNIT["degree", 0.017453292519943295], AXIS["Geodetic longitude", EAST], AXIS["Geodetic latitude", NORTH]]
python coordinate-system shapefile
python coordinate-system shapefile
edited Nov 27 '18 at 11:58
Taras
2,1552725
2,1552725
asked Nov 27 '18 at 11:13
userxxxuserxxx
1133
1133
1
Which python library or tools do you use to read your shapefile?
– YoLecomte
Nov 27 '18 at 11:21
I have tried GeoPandas, Shapely, and Fionna
– userxxx
Nov 27 '18 at 11:34
add a comment |
1
Which python library or tools do you use to read your shapefile?
– YoLecomte
Nov 27 '18 at 11:21
I have tried GeoPandas, Shapely, and Fionna
– userxxx
Nov 27 '18 at 11:34
1
1
Which python library or tools do you use to read your shapefile?
– YoLecomte
Nov 27 '18 at 11:21
Which python library or tools do you use to read your shapefile?
– YoLecomte
Nov 27 '18 at 11:21
I have tried GeoPandas, Shapely, and Fionna
– userxxx
Nov 27 '18 at 11:34
I have tried GeoPandas, Shapely, and Fionna
– userxxx
Nov 27 '18 at 11:34
add a comment |
3 Answers
3
active
oldest
votes
For example with fiona:
c = fiona.open('docs/data/test_uk.shp')
crs = c.crs
find it in the docs page 28
If you need the EPSG code there is good inspiration to take here using pyproj
add a comment |
Is it not just that simple as below (I know he wanted to know from prj file but I think this is more simple)?
import arcpy
arcpy.env.workspace = r"PATH TO FOLDER OR GDB"
featureclasses = arcpy.ListFeatureClasses()
for fc in featureclasses:
desc = arcpy.Describe(fc)
spatialRef = desc.spatialReference
print(spatialRef.Name)
https://www.e-education.psu.edu/geog485/node/115
Thanks for this, but is there any alternate solution which does not use arcpy.
– userxxx
Nov 27 '18 at 11:37
add a comment |
A number of Python modules exist to work with CRS or projection files
Pypi:ESPSG or Pypi:CRS
- GitHub: EPSG
For example, you can use epsg-ident or sridentify (Quickly get the EPSG code from a .prj file or WKT)
from sridentify import Sridentify
ident = Sridentify()
# from file
ident.from_file('schisto.prj')
ident.get_epsg()
31370
# from WKT
ident = Sridentify(prj="""GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]])
ident.get_epsg()
4326
But it doesn't always work
ident = Sridentify(prj = """GEOGCS["WGS84(DD)", DATUM["WGS84", SPHEROID["WGS84", 6378137.0, 298.257223563]], PRIMEM["Greenwich", 0.0], UNIT["degree", 0.017453292519943295], AXIS["Geodetic longitude", EAST], AXIS["Geodetic latitude", NORTH]""")
ident.get_epsg()
# nothing
add a comment |
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "79"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fgis.stackexchange.com%2fquestions%2f304061%2fhow-to-identify-coordinate-system-crs-from-projection-file-using-python%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
3 Answers
3
active
oldest
votes
3 Answers
3
active
oldest
votes
active
oldest
votes
active
oldest
votes
For example with fiona:
c = fiona.open('docs/data/test_uk.shp')
crs = c.crs
find it in the docs page 28
If you need the EPSG code there is good inspiration to take here using pyproj
add a comment |
For example with fiona:
c = fiona.open('docs/data/test_uk.shp')
crs = c.crs
find it in the docs page 28
If you need the EPSG code there is good inspiration to take here using pyproj
add a comment |
For example with fiona:
c = fiona.open('docs/data/test_uk.shp')
crs = c.crs
find it in the docs page 28
If you need the EPSG code there is good inspiration to take here using pyproj
For example with fiona:
c = fiona.open('docs/data/test_uk.shp')
crs = c.crs
find it in the docs page 28
If you need the EPSG code there is good inspiration to take here using pyproj
edited Nov 27 '18 at 11:52
answered Nov 27 '18 at 11:44
YoLecomteYoLecomte
2,065218
2,065218
add a comment |
add a comment |
Is it not just that simple as below (I know he wanted to know from prj file but I think this is more simple)?
import arcpy
arcpy.env.workspace = r"PATH TO FOLDER OR GDB"
featureclasses = arcpy.ListFeatureClasses()
for fc in featureclasses:
desc = arcpy.Describe(fc)
spatialRef = desc.spatialReference
print(spatialRef.Name)
https://www.e-education.psu.edu/geog485/node/115
Thanks for this, but is there any alternate solution which does not use arcpy.
– userxxx
Nov 27 '18 at 11:37
add a comment |
Is it not just that simple as below (I know he wanted to know from prj file but I think this is more simple)?
import arcpy
arcpy.env.workspace = r"PATH TO FOLDER OR GDB"
featureclasses = arcpy.ListFeatureClasses()
for fc in featureclasses:
desc = arcpy.Describe(fc)
spatialRef = desc.spatialReference
print(spatialRef.Name)
https://www.e-education.psu.edu/geog485/node/115
Thanks for this, but is there any alternate solution which does not use arcpy.
– userxxx
Nov 27 '18 at 11:37
add a comment |
Is it not just that simple as below (I know he wanted to know from prj file but I think this is more simple)?
import arcpy
arcpy.env.workspace = r"PATH TO FOLDER OR GDB"
featureclasses = arcpy.ListFeatureClasses()
for fc in featureclasses:
desc = arcpy.Describe(fc)
spatialRef = desc.spatialReference
print(spatialRef.Name)
https://www.e-education.psu.edu/geog485/node/115
Is it not just that simple as below (I know he wanted to know from prj file but I think this is more simple)?
import arcpy
arcpy.env.workspace = r"PATH TO FOLDER OR GDB"
featureclasses = arcpy.ListFeatureClasses()
for fc in featureclasses:
desc = arcpy.Describe(fc)
spatialRef = desc.spatialReference
print(spatialRef.Name)
https://www.e-education.psu.edu/geog485/node/115
answered Nov 27 '18 at 11:28
JuniorPythonNewbieJuniorPythonNewbie
3709
3709
Thanks for this, but is there any alternate solution which does not use arcpy.
– userxxx
Nov 27 '18 at 11:37
add a comment |
Thanks for this, but is there any alternate solution which does not use arcpy.
– userxxx
Nov 27 '18 at 11:37
Thanks for this, but is there any alternate solution which does not use arcpy.
– userxxx
Nov 27 '18 at 11:37
Thanks for this, but is there any alternate solution which does not use arcpy.
– userxxx
Nov 27 '18 at 11:37
add a comment |
A number of Python modules exist to work with CRS or projection files
Pypi:ESPSG or Pypi:CRS
- GitHub: EPSG
For example, you can use epsg-ident or sridentify (Quickly get the EPSG code from a .prj file or WKT)
from sridentify import Sridentify
ident = Sridentify()
# from file
ident.from_file('schisto.prj')
ident.get_epsg()
31370
# from WKT
ident = Sridentify(prj="""GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]])
ident.get_epsg()
4326
But it doesn't always work
ident = Sridentify(prj = """GEOGCS["WGS84(DD)", DATUM["WGS84", SPHEROID["WGS84", 6378137.0, 298.257223563]], PRIMEM["Greenwich", 0.0], UNIT["degree", 0.017453292519943295], AXIS["Geodetic longitude", EAST], AXIS["Geodetic latitude", NORTH]""")
ident.get_epsg()
# nothing
add a comment |
A number of Python modules exist to work with CRS or projection files
Pypi:ESPSG or Pypi:CRS
- GitHub: EPSG
For example, you can use epsg-ident or sridentify (Quickly get the EPSG code from a .prj file or WKT)
from sridentify import Sridentify
ident = Sridentify()
# from file
ident.from_file('schisto.prj')
ident.get_epsg()
31370
# from WKT
ident = Sridentify(prj="""GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]])
ident.get_epsg()
4326
But it doesn't always work
ident = Sridentify(prj = """GEOGCS["WGS84(DD)", DATUM["WGS84", SPHEROID["WGS84", 6378137.0, 298.257223563]], PRIMEM["Greenwich", 0.0], UNIT["degree", 0.017453292519943295], AXIS["Geodetic longitude", EAST], AXIS["Geodetic latitude", NORTH]""")
ident.get_epsg()
# nothing
add a comment |
A number of Python modules exist to work with CRS or projection files
Pypi:ESPSG or Pypi:CRS
- GitHub: EPSG
For example, you can use epsg-ident or sridentify (Quickly get the EPSG code from a .prj file or WKT)
from sridentify import Sridentify
ident = Sridentify()
# from file
ident.from_file('schisto.prj')
ident.get_epsg()
31370
# from WKT
ident = Sridentify(prj="""GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]])
ident.get_epsg()
4326
But it doesn't always work
ident = Sridentify(prj = """GEOGCS["WGS84(DD)", DATUM["WGS84", SPHEROID["WGS84", 6378137.0, 298.257223563]], PRIMEM["Greenwich", 0.0], UNIT["degree", 0.017453292519943295], AXIS["Geodetic longitude", EAST], AXIS["Geodetic latitude", NORTH]""")
ident.get_epsg()
# nothing
A number of Python modules exist to work with CRS or projection files
Pypi:ESPSG or Pypi:CRS
- GitHub: EPSG
For example, you can use epsg-ident or sridentify (Quickly get the EPSG code from a .prj file or WKT)
from sridentify import Sridentify
ident = Sridentify()
# from file
ident.from_file('schisto.prj')
ident.get_epsg()
31370
# from WKT
ident = Sridentify(prj="""GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]])
ident.get_epsg()
4326
But it doesn't always work
ident = Sridentify(prj = """GEOGCS["WGS84(DD)", DATUM["WGS84", SPHEROID["WGS84", 6378137.0, 298.257223563]], PRIMEM["Greenwich", 0.0], UNIT["degree", 0.017453292519943295], AXIS["Geodetic longitude", EAST], AXIS["Geodetic latitude", NORTH]""")
ident.get_epsg()
# nothing
answered Nov 27 '18 at 17:10
genegene
37.2k154119
37.2k154119
add a comment |
add a comment |
Thanks for contributing an answer to Geographic Information Systems Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fgis.stackexchange.com%2fquestions%2f304061%2fhow-to-identify-coordinate-system-crs-from-projection-file-using-python%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
1
Which python library or tools do you use to read your shapefile?
– YoLecomte
Nov 27 '18 at 11:21
I have tried GeoPandas, Shapely, and Fionna
– userxxx
Nov 27 '18 at 11:34