Skip to content

Commit e60e838

Browse files
authored
Merge pull request #60 from ICESat2-SlideRule/icepyx
add region extraction from icepyx query
2 parents e6d0f3a + 74b6412 commit e60e838

File tree

2 files changed

+28
-1
lines changed

2 files changed

+28
-1
lines changed

sliderule/ipxapi.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,26 +45,53 @@
4545
# ICEPYX ATL06
4646
#
4747
def atl06p(ipx_region, parm, asset=icesat2.DEFAULT_ASSET):
48+
"""
49+
create a sliderule atl06p query from an icepyx region
50+
"""
4851

4952
try:
5053
version = ipx_region.product_version
5154
resources = ipx_region.avail_granules(ids=True)[0]
5255
except:
5356
logger.critical("must supply an icepyx query as region")
5457
return icesat2.__emptyframe()
58+
# try to get the subsetting region
59+
if ipx_region.extent_type in ('bbox','polygon'):
60+
parm.update('poly', to_region(ipx_region))
5561

5662
return icesat2.atl06p(parm, asset, version=version, resources=resources)
5763

5864
#
5965
# ICEPYX ATL03
6066
#
6167
def atl03sp(ipx_region, parm, asset=icesat2.DEFAULT_ASSET):
68+
"""
69+
create a sliderule atl03sp query from an icepyx region
70+
"""
6271

6372
try:
6473
version = ipx_region.product_version
6574
resources = ipx_region.avail_granules(ids=True)[0]
6675
except:
6776
logger.critical("must supply an icepyx query as region")
6877
return icesat2.__emptyframe()
78+
# try to get the subsetting region
79+
if ipx_region.extent_type in ('bbox','polygon'):
80+
parm.update('poly', to_region(ipx_region))
6981

7082
return icesat2.atl03sp(parm, asset, version=version, resources=resources)
83+
84+
def to_region(ipx_region):
85+
"""
86+
extract subsetting extents from an icepyx region
87+
"""
88+
if (ipx_region.extent_type == 'bbox'):
89+
bbox = ipx_region.spatial_extent[1]
90+
poly = [dict(lon=bbox[1], lat=bbox[2]),
91+
dict(lon=bbox[3], lat=bbox[2]),
92+
dict(lon=bbox[3], lat=bbox[4]),
93+
dict(lon=bbox[1], lat=bbox[4]),
94+
dict(lon=bbox[1], lat=bbox[2])]
95+
elif (ipx_region.extent_type == 'polygon'):
96+
poly = [dict(lon=ln,lat=lt) for ln,lt in zip(*ipx_region.spatial_extent[1])]
97+
return poly

utils/icepx_region.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ def parse_command_line(args, cfg):
8686
icesat2.init(scfg["url"], verbose=True)
8787

8888
# generate sliderule atl06 elevations
89-
parms["poly"] = icesat2.toregion(icfg["spatial_extent"])[0]
89+
# parms["poly"] = icesat2.toregion(icfg["spatial_extent"])[0]
9090
atl06_sr = ipxapi.atl06p(iregion, parms, scfg["asset"])
9191

9292
# Create Plot

0 commit comments

Comments
 (0)