Skip to content

Commit

Permalink
Replace epsg.io by pyproj
Browse files Browse the repository at this point in the history
  • Loading branch information
sbrunner committed Dec 12, 2024
1 parent 54b69ee commit b47c5c6
Showing 1 changed file with 7 additions and 25 deletions.
32 changes: 7 additions & 25 deletions geoportal/c2cgeoportal_geoportal/scripts/pcreate.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@
# either expressed or implied, of the FreeBSD Project.


import json
import os
import re
import subprocess
Expand All @@ -35,6 +34,7 @@
from typing import Any, Union, cast

import pkg_resources
import pyproj
import requests
import yaml
from cookiecutter.log import configure_logger
Expand Down Expand Up @@ -277,31 +277,13 @@ def get_var(
@staticmethod
def epsg2bbox(srid: int) -> list[str] | None:
try:
r = requests.get(f"https://epsg.io/?format=json&q={srid}", timeout=60)
bbox = r.json()["results"][0]["bbox"]
r = requests.get(
"https://epsg.io/trans?s_srs=4326&t_srs={srid}&data={bbox[1]},{bbox[0]}".format(
srid=srid, bbox=bbox
),
timeout=60,
)
r1 = r.json()[0]
r = requests.get(
"https://epsg.io/trans?s_srs=4326&t_srs={srid}&data={bbox[3]},{bbox[2]}".format(
srid=srid, bbox=bbox
),
timeout=60,
)
r2 = r.json()[0]
return [r1["x"], r2["y"], r2["x"], r1["y"]]
except requests.RequestException:
print("Failed to establish a connection to epsg.io.")
except json.JSONDecodeError:
print("epsg.io doesn't return a correct json.")
except IndexError:
print("Unable to get the bbox")
crs = pyproj.CRS.from_epsg(srid)
transformer = pyproj.Transformer.from_crs(4326, crs)
c1 = transformer.transform(crs.area_of_use.bounds[1], crs.area_of_use.bounds[0])
c2 = transformer.transform(crs.area_of_use.bounds[3], crs.area_of_use.bounds[2])
return [c1[0], c1[1], c2[0], c2[1]]
except Exception as exception: # pylint: disable=broad-exception-caught
print(f"unexpected error: {str(exception)}")
print(f"Unexpected error: {str(exception)}")
return None


Expand Down

0 comments on commit b47c5c6

Please sign in to comment.