<jupyter_start><jupyter_text>**IceFlow** Point Cloud Data Access--- IceFlow APIIceFlow **Spatial Extent Parameters*** **Polygon**: A conterclockwise closed array of lat-lons, the last coordinate has to be the same as the first pair.* **bounding box**: a WGS84 box with min_lon,min_lat,max_lon,max_lat values**Temporal Extent Parameters*** **date_range**: The date/time range over which to return data, accepts UTF datetime or simple YYYY-mm-dd formatted values.**ITRF** (optional)* The ITRF reference to which the data will be transformed via the published ITRF transformation parameters. Optional, but must be used when specifying epoch.* Available values : **ITRF2000, ITRF2008, ITRF2014****Epoch** (optional)* The epoch (in decimal years) to which the data will be transformed via the ITRF Plate Motion Model corresponding to ITRF. Optional, and can be used when also specifying itrf, but can only be used if itrf is ITRF2008 or ITRF2014 since there is no ITRF2000 Plate Motion Model. Using NSIDC data ordering system to place an IceFlow order<jupyter_code># Importing the IceFlow client and authenticating ourselves with EarthData
from iceflow.client import IceflowClient

ifc = IceflowClient()
authorized = ifc.authenticate('betolink', 'Luiskov1', '<EMAIL>')
if authorized is None:
    print('NASA EarthData could not fins a valid user, verify your credentials')
else:
    print('User authenticated with EarthData')
# We use IceFlow to query CMR and get an idea of how many granules we'll be subsetting.

# Thwaites glacier ICESat and ICESat2
my_params ={
    'datasets': ['GLAH06', 'ATL06'],
    'ITRF': '2014',
    'epoch': '2014.1',
    'start': '2003-01-01',
    'end': '2019-01-01',
    'bbox': '-107.4515,-75.3695,-105.3794,-74.4563'
}
granules = ifc.query_cmr(my_params)
# Now we order the data, this is an async process. When the order is complete
# you can proceed to downlad the IceFlow data granule.
orders = ifc.place_data_orders(my_params)
orders
for order in orders:
    status = ifc.check_order_status(order)
    if status['status'] == 'COMPLETE':
        ifc.download_order(order)<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.09760675739089629, 'fraction_numerical': 0.03894885030502112, 'mean_word_length': 4.955307262569832, 'pattern_counts': {'":': 0, '<': 6, '<?xml version=': 0, '>': 6, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 1, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '1', 'dir': 'jupyter-structured-clean-dedup', 'id': '35303', 'license': 'MIT', 'n_tokens_mistral': 708, 'n_tokens_neox': 642, 'n_words': 260, 'path': 'notebooks/iceflow/2_api.ipynb', 'repo_name': 'nicholas-kotlinski/NSIDC-Data-Tutorials', 'size': '2155'}