Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Daniel Scheffler
py_tools_ds
Commits
f8729dfb
Commit
f8729dfb
authored
Aug 26, 2020
by
Daniel Scheffler
Browse files
Fixed geotransform2mapinfo().
Signed-off-by:
Daniel Scheffler
<
danschef@gfz-potsdam.de
>
parent
e20e3ea5
Pipeline
#11906
failed with stage
in 12 minutes and 48 seconds
Changes
1
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
py_tools_ds/geo/map_info.py
View file @
f8729dfb
...
...
@@ -244,43 +244,43 @@ def geotransform2mapinfo(gt, prj):
:returns: ENVI geo info, e.g. [ UTM , 1 , 1 , 256785.0 , 4572015.0 , 30.0 , 30.0 , 43 , North , WGS-84 ]
:rtype: list
"""
#
try:
return
Geocoding
(
gt
=
gt
,
prj
=
prj
).
to_mapinfo
()
#
except KeyError: # KeyError: 'datum' - in case of, e.g., ETRS/LAEA projection
#
fn_bsq = "py_tools_ds__geotransform2mapinfo_temp.bsq"
#
fn_hdr = os.path.splitext(fn_bsq)[0] + '.hdr'
#
fdir = os.path.join(os.path.abspath(os.curdir))
#
#
try:
#
ds_out = gdal.GetDriverByName('ENVI').Create(fn_bsq, 2, 2, 1, gdal.GDT_Int32)
#
ds_out.SetGeoTransform(gt)
#
ds_out.SetProjection(prj)
#
ds_out.FlushCache()
#
#
# noinspection PyUnusedLocal
#
ds_out = None
#
#
with open(fn_hdr, 'r') as inF:
#
content = inF.read()
#
if 'map info' in content:
#
res = re.search("map info = {(.*?)}", content, re.I).group(1)
#
map_info = [i.strip() for i in res.split(',')]
#
#
for i, ele in enumerate(map_info):
#
try:
#
map_info[i] = float(ele)
#
except ValueError:
#
pass
#
else:
#
map_info = ['Arbitrary', 1.0, 1.0, 0.0, 0.0, 1.0, 1.0]
#
#
finally:
#
for fn in [fn_bsq, fn_hdr]:
#
if os.path.exists(os.path.join(fdir, fn)):
#
gdal.Unlink(os.path.join(fdir, fn))
#
#
return map_info
try
:
return
Geocoding
(
gt
=
gt
,
prj
=
prj
).
to_mapinfo
()
except
KeyError
:
# KeyError: 'datum' - in case of, e.g., ETRS/LAEA projection
fn_bsq
=
"py_tools_ds__geotransform2mapinfo_temp.bsq"
fn_hdr
=
os
.
path
.
splitext
(
fn_bsq
)[
0
]
+
'.hdr'
fdir
=
os
.
path
.
join
(
os
.
path
.
abspath
(
os
.
curdir
))
try
:
ds_out
=
gdal
.
GetDriverByName
(
'ENVI'
).
Create
(
fn_bsq
,
2
,
2
,
1
,
gdal
.
GDT_Int32
)
ds_out
.
SetGeoTransform
(
gt
)
ds_out
.
SetProjection
(
prj
)
ds_out
.
FlushCache
()
# noinspection PyUnusedLocal
ds_out
=
None
with
open
(
fn_hdr
,
'r'
)
as
inF
:
content
=
inF
.
read
()
if
'map info'
in
content
:
res
=
re
.
search
(
"map info = {(.*?)}"
,
content
,
re
.
I
).
group
(
1
)
map_info
=
[
i
.
strip
()
for
i
in
res
.
split
(
','
)]
for
i
,
ele
in
enumerate
(
map_info
):
try
:
map_info
[
i
]
=
float
(
ele
)
except
ValueError
:
pass
else
:
map_info
=
[
'Arbitrary'
,
1.0
,
1.0
,
0.0
,
0.0
,
1.0
,
1.0
]
finally
:
for
fn
in
[
fn_bsq
,
fn_hdr
]:
if
os
.
path
.
exists
(
os
.
path
.
join
(
fdir
,
fn
)):
gdal
.
Unlink
(
os
.
path
.
join
(
fdir
,
fn
))
return
map_info
def
mapinfo2geotransform
(
map_info
):
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment