diff --git a/markdown-docs/vertex/displacement.en.md b/markdown-docs/vertex/displacement.en.md new file mode 100644 index 0000000..da949ee --- /dev/null +++ b/markdown-docs/vertex/displacement.en.md @@ -0,0 +1,25 @@ + +# Displacement Tool +The OPERA Sentinel-1 Displacement Products are high-quality Interferometric Synthetic Aperture Radar (InSAR)-derived displacement data with reduced decorrelation noise using a hybrid Persistent Scatterer (PS) and Distributed Scatterer (DS) time series processing approach. These products provide information on anthropogenic and natural movements of the Earth's surface, such as subsidence, tectonics, and landslides. The products will cover North America and be back-processed through the start of the Sentinel-1 mission. New products will be generated as Sentinel-1 data becomes available. + +The Displacement Tool provides the ability to visualize and interact with these products. + +## Map Layers +There are additional map layers available. In the top left corner of the map, you may click the checkbox to select your desired map layer. +Descriptions of each layer are below. + +### Cumulative Deformation +This layer is based on shortwave displacement. +There are separate Ascending and Descending variants, and the layer will update to display the correct direction based on your search filters. + +### Cumulative Velocity +This is a derived layer based on the cumulative deformation layer from the displacement products. +There are separate Ascending and Descending variants, and the layer will update to display the correct direction based on your search filters. + +### Rollout +This layer provides color-coded priority for Displacement Products creation by region. +Regions are prioritized 1 through 3, with 1 being the highest processing priority. +Note that some sub-regions may be de-prioritized based on snow cover, vegetation, or other factors. + +## Further Reading +[Displacement Products Roadmap](https://storymaps.arcgis.com/stories/9356add046654d719fcc20566fc1f243) diff --git a/markdown-docs/datasets/displacement.key b/markdown-docs/vertex/displacement.key similarity index 100% rename from markdown-docs/datasets/displacement.key rename to markdown-docs/vertex/displacement.key diff --git a/mkdocs.yml b/mkdocs.yml index 486794e..242964c 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -97,6 +97,7 @@ nav: - vertex/manual.md - Baseline: vertex/baseline.md - SBAS: vertex/sbas.md + - Displacement: vertex/displacement.md - Event: vertex/events.md - Derived Datasets: vertex/derived_datasets.md - What's New: vertex/changelog.md diff --git a/phrase_json/en.json b/phrase_json/en.json index c2563e7..6daffff 100644 --- a/phrase_json/en.json +++ b/phrase_json/en.json @@ -8,8 +8,10 @@ "BEST_PRACTICES": "\n# asf_search Best Practices\n\nIn addition to covering best practices, this page also contains advanced search techniques and serves as the \"philosophy of asf_search\".\n\nTopics covered include:\n\n- General recommendations, including\nworking with results, performance, common search filters and types, and count\n- Specifics for some datasets\n- Granule and product searches and the preferred method for these\n- Secondary searches such as stacking\n- Download and recommended authentication method\n- Advanced search techniques, including ranges, subclasses, large result sets, and more\n\n## General Recommendations\nThis section contains information on result sets, general performance, the different search types available, common filter examples, and count.\n\n### Result Sets\nSearch results are returned as an `ASFSearchResults` object, a sublass of `User List`, containing a list of `ASFProduct` objects. Each of these classes provides some additional functionality to aid in working with the results and individual products.\n`ASFProduct` provides a number of metadata fields, such as:\n\n- Geographic coordinates\n- Latitude/Longitude\n- Shape type\n- Scene and product metadata\n- Path, frame\n- Platform, beam, polarization\n- File name, size, URL\n\nGeographic coordinates are stored in the geometry attribute:\n\n`results[0].geometry`\n\nOther metadata is available through the properties attribute:\n\n`results[0].properties`\n\n`ASFProduct` objects provides geojson-based serialization, in the form of a geojson feature snippet:\n\n`print(results[0])`\n\n`ASFSearchResults` also supports the following output formats:\n\n- csv\n- jsonlite\n- jsonlite2\n- metalink\n- kml\n\n### General performance\nWhen searching for multiple products it's faster to search all products at once in a single search, rather than running a separate query for each product, which involves multiple https requests.\n\n``` python\nimport asf_search as asf\n\ngranules = ['S1B_IW_GRDH_1SDV_20161124T032008_20161124T032033_003095_005430_9906', 'S1-GUNW-D-R-087-tops-20190301_20190223-161540-20645N_18637N-PP-7a85-v2_0_1', 'ALPSRP111041130']\n\n# THIS IS SLOW AND MAKES MORE NETWORK REQUESTS THAN NECESSARY\nbatched_results = ASFSearchResults([])\nfor granule in granules:\n unbatched_response = asf.granule_search(granules_list=granule)\n batched_results.extend(batched_results)\n\n# THIS WILL ALWAYS BE FASTER\nfast_results = asf.granule_search(granules_list=granules)\n```\n\nIf you need to perform intermediate operations on large results (such as writing metadata to a file or calling some external process on results), use the `search_generator()` method to operate on results as they're returned page-by-page (default page size is 250).\n\n``` python\nimport asf_search as asf\n\nopts = asf.ASFSearchOptions(platform=asf.DATASET.SENTINEL1, maxResults=1000)\n\nfor page in asf.search_generator(opts=opts):\n foo(page)\n```\n\n\n### Differences between search types\nTo see details on different search types, see the [Searching](/asf_search/searching/) section.\n\n### Common Filters \nSearch options can be specified using kwargs, which also allows them to be handled using a dictionary:\n\n\topts = {\n \t'platform': asf.PLATFORM.ALOS,\n \t'start': '2010-01-01T00:00:00Z',\n \t'end': '2010-02-01T23:59:59Z'\n\t}\n \nBelow are some common filter examples:\n\n\tresults = asf.geo_search(\n \tintersectsWith='POLYGON((-91.97 28.78,-88.85 28.78,-88.85 30.31,-91.97 30.31,-91.97 28.78))',\n \tplatform=asf.PLATFORM.UAVSAR,\n \tprocessingLevel=asf.PRODUCT_TYPE.METADATA,\n\t\tmaxResults=250)\n\n### search_count()\nYou may use the `search_count()` method to return the count of total results matching the passed search options.\n\nThis example returns the current size of the SENTINEL1 catalog:\n \n opts = {\n 'platform': asf.PLATFORM.SENTINEL1}\n count = asf.search_count(**opts)\n\n## Dataset Specifics\nConstants are provided for each dataset. The list of constants can be found [here](https://github.com/asfadmin/Discovery-asf_search/blob/master/asf_search/constants/DATASET.py).\n\nBasic dataset search example:\n \n sentinel_results = asf.search(dataset=asf.DATASET.SENTINEL1, maxResults=250)\n\nYou can view the metadata for your results via the properties dictionary:\n\n sentinel_results[0].properties\n\nOr you can view the metadata as a geojson formatted dictionary:\n\n sentinel_results.geojson()\n\n### NISAR\nasf_search supports searching for lists of short names by the `shortName` keyword.\nThe currently available NISAR data that CMR provides lacks searchable additional attributes.\nTherefore, the best way to search for NISAR results is via combinations of `shortName`, `dataset`, `platform`, and `granule_list`/`product_list` keywords.\n\nNISAR example:\n\n nisar_gslc_gunw = asf.search(shortName=['NISAR_L2_GSLC_V1', 'NISAR_L2_GUNW_V1'], opts=search_opts, maxResults=250)\n print(nisar_gslc_gunw)\n\n### Opera-S1\nThe Opera dataset has both standard products and CalVal (calibration/validation) products available.\nPlease note that the CalVal products are treated as their own dataset in asf_search.\nBoth can be found in the [constants list](https://github.com/asfadmin/Discovery-asf_search/blob/master/asf_search/constants/DATASET.py).\n\n### SLC-Burst\nThe SLC Burst dataset has both tiff and xml data associated with a single entry in CMR. To access the xml data,\nsee the section on [downloading additional files](#downloading-additional-files).\n\n`fullBurstID`, `relativeBurstID`, and `absoluteBurstID` are SLC Burst specific filters. To\nget a temporal stack of products over a single burst frame, use `fullBurstID`, which is shared between\nall bursts over a single frame.\n\n### Further Reading\nFor more information on the constants and keywords available, see the [Keywords](/asf_search/searching/#keywords) section.\n\n## Search Specifics\nThis section contains information on granule and product searches, secondary searches,\n and other search details.\n\n### Granule and Product Search\n`granule_search()` and `product_search()` are similar.\nGranule (also called a scene) searches include all files types for the specified granule, whereas product searches specify one file type. \nGranule searches can be 1:many, whereas a product search will always be 1:1. \n\nGranule search example:\n\n granule_list = [\n 'S1B_IW_GRDH_1SDV_20190822T151551_20190822T151616_017700_0214D2_6084',\n 'S1B_IW_GRDH_1SDV_20190810T151550_20190810T151615_017525_020F5A_2F74',\n 'S1B_IW_GRDH_1SDV_20190729T151549_20190729T151614_017350_020A0A_C3E2',\n 'S1B_IW_GRDH_1SDV_20190717T151548_20190717T151613_017175_0204EA_4181',\n 'S1B_IW_GRDH_1SDV_20190705T151548_20190705T151613_017000_01FFC4_24EC',\n 'S1B_IW_GRDH_1SDV_20190623T151547_20190623T151612_016825_01FA95_14B9',\n 'S1B_IW_GRDH_1SDV_20190611T151546_20190611T151611_016650_01F566_D7CE',\n 'S1B_IW_GRDH_1SDV_20190530T151546_20190530T151611_016475_01F02E_BF97',\n 'S1B_IW_GRDH_1SDV_20190518T151545_20190518T151610_016300_01EAD8_9308',\n 'S1B_IW_GRDH_1SDV_20190506T151544_20190506T151609_016125_01E56C_1D67'\n ]\n results = asf.granule_search(granule_list)\n print(results)\n\nProduct search example: \n\n product_list = [\n 'S1A_IW_GRDH_1SDV_20190809T001336_20190809T001401_028485_033839_78A1-GRD_HD',\n 'S1A_IW_GRDH_1SDV_20150322T000454_20150322T000524_005137_006794_56E3-GRD_HD',\n 'S1A_IW_GRDH_1SDV_20160121T001256_20160121T001321_009585_00DF26_5B84-GRD_HD',\n 'S1A_IW_GRDH_1SDV_20151117T000448_20151117T000513_008637_00C455_3DC2-GRD_HD'\n ]\n results = asf.product_search(product_list)\n print(results)\n\n`granule_search()` and `product_search()` do not make use of any other search filters, but will accept kwargs for consistency with other search functions:\n\n results = asf.granule_search(granule_list=granule_list)\n print(f'{len(results)} results found')\n\n### Note about incorrect methods\nIt is generally preferred to \"collapse\" many small queries into fewer large queries. That is, it may be easy and logically reasonable to run a number of small `granule_search()` queries via a `foreach` loop over each of the items in the original granule list. **Please do not do this.** It consumes a lot of resources at both ASF and at CMR.\n\nInstead, combine your small queries into a single large query where possible, as shown above, and then post-process the results locally. `granule_search()` and `product_search()` can support very large lists, and will break them up internally when needed.\n\n### frame vs asfframe\nWhen using the `frame` keyword with certain platforms/datasets, asf_search will implicitly swap to using the `asfframe` keyword instead at search time. The platforms/datasets this affects are:\n\n- `SENTINEL-1A/B`\n- `ALOS`\n\nIn the query to CMR, this means searching by the `FRAME_NUMBER` instead of the `CENTER_ESA_FRAME` additional attribute.\nA way to avoid this on searches and use `CENTER_ESA_FRAME` with the above platforms/datasets is to use `cmr_keywords`:\n\n`asf.search(platform=asf.PLATFORM.SENTINEL1, cmr_keywords=[('attribute[]', 'int,CENTER_ESA_FRAME,1001')], maxResults=250)`\n\n### Stacking\nOnce you have identified a result set or a product id, you may wish to build a baseline stack based on those results.\nYou may use either the `stack()` or `stack_from_id()` methods to accomplish this. \n\n`stack_from_id()` is provided largely as a convenience: internally, it performs a `product_search()` using the provided ID, and then returns the results of that product's `stack()` method.\nFor this reason, it is recommended that if you have an `ASFProduct` object at hand, you use that to build your stack directly, as it removes the need for the additional search action.\nFor other cases where you have parameters describing your reference scene but not an `ASFProduct` object itself, it is appropriate to use one of the various search features available to obtain an `ASFProduct` first.\n\nA basic example using `ASFProduct.stack()`:\n \n import asf_search as asf\n\n reference = asf.product_search('S1A_IW_SLC__1SDV_20220215T225119_20220215T225146_041930_04FE2E_9252-SLC')[0]\n\n print(reference.stack())\n\nThe results are a standard `ASFSearchResults` object containing a list of `ASFProduct` objects, each with all the usual functionality.\nThere are 2 additional fields in the `ASFProduct` objects: `temporalBaseline` and `perpendicularBaseline`.\n`temporalBaseline` describes the temporal offset in days from the reference scene used to build the stack. \n`perpendicularBaseline` describes the perpendicular offset in meters from the reference scene used the build the stack.\nThe reference scene is included in the stack and will always have a temporal and perpendicular baseline of 0.\n\n### Platform vs Dataset\nasf_search provides 2 major keywords with subtle differences:\n \n - `platform`\n - `dataset`\n\n`platform` maps to the `platform[]` CMR keyword; values like `Sentinel-1A`, `UAVSAR`, `ALOS`. A limitation of searching by \nplatform is that for platforms like `Sentinel-1A` there are a lot of Sentinel-1 derived product types (`OPERA-S1`, `SLC-BURST`). \nFor every `SLC` product, there are 27 additional `OPERA-S1` and `SLC-BURST` products, which can lead to homogeneous results depending on your search filters.\n\nThe `dataset` keyword serves as a solution for this. Each \"dataset\" is a collection of concept ids generally associated with commonly used datasets.\n\n``` python\n# At the time of writing will likely contain mostly `OPERA-S1` and/or `SLC-BURST` products\nplatform_results = asf.search(dataset=asf.PLATFORM.SENTINEL1, maxResults=250) \n\n# Will contain everything but `OPERA-S1` and/or `SLC-BURST` products\ndataset_results = asf.search(dataset=asf.DATASET.SENTINEL1, maxResults=250)\n\n# Will contain OPERA-S1 Products\nopera_results = asf.search(dataset=asf.DATASET.OPERA_S1, maxResults=250)\n\n# Will contain SLC-BURST products\nslc_burst_results = asf.search(dataset=asf.DATASET.SLC_BURST, maxResults=250)\n```\n\n### CMR UAT Host\nasf_search defaults to querying against the production CMR API, `cmr.earthdata.nasa.gov`.\nIn order to use another CMR host, set the `host` keyword with `ASFSearchOptions`.\n\n``` python\nuat_opts = asf.ASFSearchOptions(host='cmr.uat.earthdata.nasa.gov', maxResults=250)\nuat_results = asf.search(opts=uat_opts)\n```\n\n### Campaign lists\nasf_search provides a built in method for searching for campaigns via platform.\n\n`asf.campaigns(platform=asf.PLATFORM.SENTINEL1A)`\n\n### CMR Keyword Aliasing\nasf_search aliases the following keywords behind the scenes with corresponding collection concept ids for improved search performance:\n\n- `platform`\n- `processingLevel`\n\nThe Alias lists are updated as needed with each release, but if you're not finding expected results, then the alias list may be out of date. \nIn order to skip the aliasing step, set the `collectionAlias` keyword to false with `ASFSearchOptions`\n\n``` python\nopts = asf.ASFSearchOptions(collectionAlias=False, maxResults=250)\nunaliased_results = asf.search(opts=opts)\n```\n\n**Please note, this will result in slower average search times.** If there are any results missing from new datasets, please report it as an [issue in github](https://github.com/asfadmin/Discovery-asf_search/issues) with the concept id and name of the collection missing from the dataset.\n\n## Download\n\nThis [Jupyter notebook](https://github.com/asfadmin/Discovery-asf_search/blob/master/examples/5-Download.ipynb) covers the available authentication methods.\nOnce authenticated, it provides a workflow for downloading search results.\n\n### Recommended Authentication\nUsing .netrc credentials is the preferred method for authentication.\nThis [guide](https://www.labkey.org/Documentation/wiki-page.view?name=netrc) will show you how to set up a .netrc file.\nRequests will attempt to get the authentication credentials for the URL’s hostname from your .netrc file.\nThe .netrc file overrides raw HTTP authentication headers set with `headers=`.\nIf credentials for the hostname are found, the request is sent with HTTP Basic Auth.\n\n## Advanced Search Techniques\nBelow you will find recommendations for advanced search techniques, such as subclassing, authentication, and the preferred method for large searches.\n\n### Sentinel-1 and GroupID\nSentinel-1 products as well as most Sentinel-1 derived datasets (OPERA-S1, SLC-Burst) have a group id associated with them.\nThis means that getting the original source scene, or any product associated with that scene, is as simple as using the `groupID`\nkeyword in a search.\n\n``` python\nimport asf_search as asf\n\nburst_name = 'S1_279916_IW1_20230418T162849_VV_A7E1-BURST'\nburst_granule = asf.search(granule_list=['S1_279916_IW1_20230418T162849_VV_A7E1-BURST'])[0]\n\ngroupID = burst_granule.properties['groupID']\n\n# gets the parent SLC of the burst product\nparent_slc = asf.search(groupID=groupID, processingLevel=asf.PRODUCT_TYPE.SLC)[0]\n\n# gets all other SLC Bursts associated with the same parent SLC\nbursts_in_same_scene = asf.search(groupID=groupID, processingLevel=asf.PRODUCT_TYPE.BURST)\n\n# gets ALL Sentinel-1 products and derived products available for the parent scene\nall_products_for_scene = asf.search(groupID=groupID)\n```\n\n### Subclassing\n`ASFProduct` is the base class for all search result objects.\nThere are several subclasses of `ASFProduct` that are used for specific platforms and product types with unique properties/functionality.\n\nKey Methods:\n\n- `geojson()`\n- `download()`\n- `stack()`\n- `get_stack_opts()` (returns None in `ASFProduct`, implemented by `ASFStackableProduct` subclass and its subclasses)\n- `centroid()`\n- `remotezip()` (requires optional dependency to be installed)\n- `get_property_paths()` (gets product's keywords and their paths in umm dictionary)\n- `translate_product()` (reads properties from umm, populates `properties` with associated keyword)\n- `get_sort_keys()`\n- `umm_get()`\n\nKey Properties:\n\n- `properties`\n- `_base_properties` (what `get_property_paths()` uses to find values in umm JSON `properties`)\n- `umm` (the product's umm JSON from CMR)\n- `metadata` (the product's metadata JSON from CMR)\n\n`ASFStackableProduct` is an important `ASFProduct` subclass, from which stackable product types meant for time series analysis are derived.\n`ASFStackableProduct` has a class enum, `BaselineCalcType`, that determines how perpendicular stack calculations are handled.\nEach subclass keeps track of their baseline calculation type via the `baseline_type` property.\n\nInherits: `ASFProduct`\n\nInherited By: `ALOSProduct`; `ERSProduct`; `JERSProduct`; `RADARSATProduct`; `S1Product`;\n`S1BurstProduct`; `OPERAS1Product`, `ARIAS1GUNWProduct`\n\nKey Methods:\n\n- `get_baseline_calc_properties()`\n- `get_stack_opts()` (overrides `ASFproduct`)\n- `is_valid_reference()`\n- `get_default_baseline_product_type()`\n\nKey Definitions for class enum `BaselineCalcType`:\n\n- `PRE_CALCULATED`: has pre-calculated `insarBaseline` value that will be used for perpendicular calculations\n- `CALCULATED`: uses position/velocity state vectors and ascending node time for perpendicular calculations\n\nKey Fields:\n\n- `baseline`\n- `baseline_type` (`BaselineCalcType.PRE_CALCULATED` by default or `BaselineCalcType.CALCULATED`)\n\nBecause `ASFProduct` is built for subclassing, that means you can provide your own custom subclasses derived directly from `ASFProduct` or even from a pre-existing subclass like `S1Product` or `OperaS1Product`.\n\nFor more information on subclassing, see the [Jupyter notebook](https://github.com/asfadmin/Discovery-asf_search/blob/master/examples/Advanced-Custom-ASFProduct-Subclassing.ipynb).\n\n### Using authenticated searches\nDownloading data, and accessing some data, requires an authenticated session with Earthdata Login.\nTo simplify this workflow, the `ASFSession` class is provided. \n \n auth_with_creds()\n auth_with_token()\n auth_with_cookiejar()\n\nCreating an authenticated session example:\n\n from getpass import getpass\n session = asf.ASFSession()\n session.auth_with_creds(input('EDL Username'), getpass('EDL Password'))\n\nThe `ASFSearchOptions` class is provided for storing and validating search parameters.\nCreating an `ASFSearchOptions` object is required to pass our authenticated session to `search()`.\n\n search_opts = asf.ASFSearchOptions(\n dataset=asf.DATASET.NISAR,\n session=session)\n\n nisar_response = asf.search(opts=search_opts, maxResults=250)\n\n### search_generator() for large result sets\nThe recommended way to perform large, long-running searches is to use `search_generator()` to yield CMR results page by page.\nThis allows you to stream results to a file in the event CMR times out.\nDifferent output formats can be used.\n\nNote that asf_search queries CMR with page sizes of 250, so setting maxResults=500 means asf_search will have to query CMR twice, each time returning 250 products:\n\n`large_results_generator = asf.search_generator(maxResults=500, platform=asf.PLATFORM.SENTINEL1A)`\n\n\twith open(\"search_results.metalink\", \"w\") as f:\n\t\tf.writelines(asf.export.results_to_metalink(large_results_generator))\n\nAnother usage example:\n\n\timport asf_search as asf\n\topts = asf.ASFSearchOptions(shortName='ARIA_S1_GUNW')\n\turs = []\n\tfor page in asf.search_generator(opts=opts):\n \turs.extend(product.properties['fileID'] for product in page)\n \tprint(len(urs))\n\n### Downloading additional files\nSome product types, such as SLC Bursts or Opera-S1 products, have several files that can be downloaded.\nWe can specify which files to download by setting the `fileType` and using the `FileDownloadType` enum class.\n\nAdditional files are stored in this array:\n\n product.properties['additionalUrls']\n\nTo download only the additional files:\n\n FileDownloadType.ADDITIONAL_FILES # everything in 'additionalUrls'\n\nTo download the default file:\n\n FileDownloadType.DEFAULT_FILE # The default data file, 'url'\n\nTo download both:\n\n FileDownloadType.ALL_FILES # all of the above\n\nThis example will download all additional files under the `additionalUrls` attribute:\n\n cslc_results[0].download(session=session, path = './', fileType=asf.FileDownloadType.ADDITIONAL_FILES) \n\nTo be more specific, we can use the `download_urls()` or `download_url()` methods\n\n print(f\"Additional urls: {opera_results[0].properties['additionalUrls']}\")\n \n url = opera_results[0].properties['additionalUrls'][0]\n fileName = url.split('/')[-1]\n \n asf.download_url(url, session=session, path ='./', filename=fileName)\n\n### S3 URIs\nSome product types (Sentinel-1, BURST, OPERA, NISAR) have s3 direct access URIs available. They are accessible under the `s3Urls` properties key:\n\n`ASFProduct.properties['s3Urls']`.\n\n### CMR Keywords Search Parameter\nYou can also search for granules using `readable_granule_name` via pattern matching.\n\nTo do this, you can pass the CMR search keyword config directly with the `cmr_keywords` search parameter.\nThis allows you to pass any valid CMR keyword-value pair that isn't covered by asf_search directly, as well as configure existing parameter behavior.\n\nMore info on pattern matching and parameter options can be found [here](https://cmr.earthdata.nasa.gov/search/site/docs/search/api.html#Parameter-Options).\n\nExample:\n\n gslc_results = asf.search(granule_list=['*046_009_A_095*'], cmr_keywords=('options[readable_granule_name][pattern]', 'true'), opts=search_opts)\n \n for product in gslc_results:\n print(product.properties['fileID'])\n", "CHANGELOG_1": "# What's New\n\n\n## Vertex is Now Multilingual!\n\nVertex now supports English and Spanish. If your browser language is set to Spanish, Vertex will default to Spanish. You can also select your preferred language from the top menu. More information can be found [here](/vertex/manual/#language-options).\n\n## Area of Interest: Search for a Location\nYou can now search for a location name as your area of interest. The *Search for a Location* field can be found by opening the Area of Interest window. More information can be found [here](/vertex/manual/#area-of-interest-options).\n\n\n## New On Demand Option\n\nSentinel-1 RTCs may now be processed at 10-meter pixel spacing. More information can be found [here](https://hyp3-docs.asf.alaska.edu/guides/rtc_product_guide/#pixel-spacing). More about the On Demand queue can be found [here](/vertex/manual/#on-demand-queue).\n\n\n## Enhanced Downloads for Google Chrome\n\nEnhanced download queue functionality is available on Google Chrome browser. Included are download progress indicators, and the option to download all files in the queue. Download all will download 3 files concurrently until all files in the queue have been downloaded. More information can be found [here](https://docs.asf.alaska.edu/vertex/manual/#google-chrome-browser).\n\n", "CHANGELOG_2": "# What's New\n\n## Dataset keyword\nThe new \"dataset\" keyword is the preferred alternative for platform searches. It allows results from multiple platforms at once. More information can be found [here](/api/keywords/#dataset-parameters).\n\n## New Python package for performing searches\nasf_search is a Python package for performing searches of the ASF catalog. In addition, it offers baseline functionality and download support. It is available through PyPi and Conda. More information can be found [here](/asf_search/basics).\n\n## Multiple Endpoints Available\n\nIn addition to the Search endpoint, we have multiple endpoints available for all of your Search API needs. Below is a brief overview of what's available. More details on these endpoints and how to use them can be found on the [Keywords page](/api/keywords).\n\n\n**Baseline Endpoint**\n\nThis endpoint can be used to search for baseline data using specific reference scenes.\n\n**WKT Endpoints**\n\nThe WKT validation endpoint will validate and repair a WKT input. The GeoSpatial Files to WKT endpoint will accept a POST request with files attached. It will return the parsed WKT from the file, as well as the repaired wrapped and unwrapped WKT.\n\n**Date Parser Endpoint**\n\nThis endpoint can be used to check how dates are parsed by the Search API.\n\n**Mission List Endpoint**\n\nThis endpoint lists all missions (also known as campaigns or collections) for all datasets.\n\n**Health Endpoint**\n\nThis endpoint is used to check the Search API health. It also provides information on CMR health.\n\n## Preferred Search API Output Format\n\nGeoJSON is the preferred Search API output format. You can specify the output format with keyword \"output\". If you find a required field that is not included in GeoJSON output, please contact ASF using the info below or reach the team directly at .", + "CHARACTERS": "characters", "COOKBOOK_1": "# Search API Tips & Tricks\n\nThis is a collection of some tips & tricks for the Search API!\n\n## New Python package for performing searches\nasf_search is a Python package for performing searches of the ASF catalog. In addition, it offers baseline functionality and download support. It is available through PyPi and Conda. More information can be found [here](/asf_search/basics).\n\n## Rate Limitation on Search Endpoint\nThere has been a rate limitation instituted on the [search endpoint](/api/keywords/#search-endpoint). The rate limitation is per IP and is currently 250 queries per minute. Upon hitting the limit, further queries will yield a HTTP 429 with an error message. Check to see if your queries are returning a small number of results. If so, you can refine your parameters to combine result sets into larger groups and then post-process those results locally. For instance, instead of searching on a small area of interest with an individual query for each day, select a larger date range in order to create a single query, then split the results apart after they have been retrieved.\n\n## Vertex Copy/Paste Search API URL\nHave you have completed a geo search in Vertex, that you'd like to replicate in a Search API query? Click the Down Arrow under the Max Results. Choose \"API URL...\".\n\nHere you can see the Search API URL you would use to replicate the search. You may change the maxResults and output format. Once you are satisfied, click the copy icon. Now you can paste the query into a browser or command line interface to execute it.\n\n## Find the Product_List Value in Vertex\nThe product/file name is listed in Vertex Search Results, under the Files detail column. You can click the Copy icon to copy the File ID. You can also copy all File IDs from your Download Queue in Vertex. Once you have your desired list of files, you can find them via the Search API using the product_list keyword.\n\n## Search Results Can Become Search Area\nYou can turn your search results into a search area. First, export your search results as GeoJSON or KML output format. Next, import your file into Vertex geo search. Vertex will extract the AOI from your file. If desired, you can add filters and can save your search filters or the search itself.\n\n## Verify Your Query is Returning the Correct Number of Results\nWould you like to verify that your query has returned the correct number of results? Change your output to \"output=count\" to verify. If the count does not match, consider narrowing your search by using more keywords, or by using keyword “maxResults” to limit it. You may also try shortening the date range to split your search into a series of smaller searches.", "DERIVED_DATASETS_1": "# Derived Datasets Search Type\n\n## What are Derived Datasets?\n\nDerived datasets are higher-level datasets created using SAR data. The datasets listed below are ASF's collection.\n\n### Global Seasonal Sentinel-1 Interferometric Coherence & Backscatter Dataset\n\nThis dataset is the first-of-its-kind spatial representation of multi-seasonal, global SAR repeat-pass interferometric coherence and backscatter signatures. Global coverage comprises all land masses and ice sheets from 82 degrees northern to 78 degrees southern latitude. The dataset is derived from high-resolution multi-temporal repeat-pass interferometric processing of about 205,000 Sentinel-1 Single-Look-Complex (SLC) data acquired in Interferometric Wide-Swath mode (Sentinel-1 IW mode) from 1-Dec-2019 to 30-Nov-2020. Further information can be found [here](https://asf.alaska.edu/datasets/derived/global-seasonal-sentinel-1-interferometric-coherence-and-backscatter-dataset/).\n\n### Global Ice Sheet Mapping Observatory (GISMO)\n\nThe Global Ice-Sheet Mapping Observatory (GISMO) spaceborne radar system is part of the NASA Instrument Incubator Project (IIP). GISMO has a specific focus in measuring the surface topography of ice sheets, ice-sheet thickness, and in uncovering physical properties of the glacier bed using SAR. It utilized VHF and P-band interferometric radars and tested different methods of clutter rejection. GISMO achieved mapping the physical properties of a glacier bed through up to 5 km of ice. The GISMO project documented flight lines over the Greenland ice sheet in 2006, 2007, and 2008. Further information can be found [here](https://asf.alaska.edu/data-sets/derived-data-sets/global-ice-sheet-mapping-orbiter-gismo/).\n\n### Glacier Speed\n\nThis dataset was produced by Evan Burgess and colleagues at the University of Utah and the University of Alaska Fairbanks using ALOS PALSAR data. It reveals complex patterns of glacier flow throughout Alaska. The speed data are available for download in formats designed both for scientists and educators. Surface velocities are available for 47,880 km^2 of glacier ice, which includes almost all of the state’s major glaciers. Detailed information on its production is available in [Burgess et al., Nature Communications, 2013](https://www.nature.com/articles/ncomms3146). Further information can be found [here](https://asf.alaska.edu/data-sets/derived-data-sets/glacier-speed/).\n\n### International Polar Year\n\nInternational Polar Year (IPY) is a collaborative research event focused on the Arctic and Antarctic. IPY 2007-2009 focused on collaborative research and extensively explored the complex relationships between the Arctic and Antarctic. Over 60 countries and thousands of researchers participated, investigating more than 200 projects. Topics include Arctic and Antarctic relationships with geophysical elements, oceans and sea ice, Earth’s atmosphere, space, and human relations. ASF hosts an archive of the IPY project titled the Global Inter-agency IPY Polar Snapshot Year (GIIPSY). GIIPSY’s objective was to obtain high-definition satellite snapshots of the polar regions during 2007-2008. Further information can be found [here](https://asf.alaska.edu/data-sets/sar-data-sets/international-polar-year-2007-2008/).\n\n\n### Radarsat-1 Antarctic Mapping Project (RAMP)\n\nThe RADARSAT-1 Antarctic Mapping Project (RAMP) is composed of two main missions, the first Antarctic Mapping Mission (AMM-1) and the Modified Antarctic Mapping Mission (MAMM). AMM-1 started on September 9, 1997 and was completed on October 20, 1997. Its goals were to acquire a complete map of Antarctica and better understand the relationships between the southernmost continent’s environmental elements. MAMM started on September 3, 2000 and was completed on November 17, 2000. It planned to remap Antarctica and measure ice velocity data using interferometric analysis and data from AMM-1. Further information can be found [here](https://asf.alaska.edu/data-sets/derived-data-sets/radarsat-antarctic-mapping-project-ramp/).\n\n\n### Sea Ice MEaSUREs\n\nSea-ice imagery and data products are supported under NASA’s Making Earth System data records for Use in Research Environments (MEaSUREs) program. Arctic and Southern Ocean imagery, data, and data products are available at no cost to approved users from the ASF DAAC. These include over 11 years of RADARSAT-1 three-day radar snapshots of Arctic and Southern Ocean sea ice, and original SAR images. RADARSAT-1 data have been processed to construct a near decadal record of small-scale ice motion of the Arctic and Southern Oceans, a record of ice motion of the northern Bering Sea, and monthly high-resolution image mosaics of the Arctic Ocean. Further information can be found [here](https://asf.alaska.edu/data-sets/derived-data-sets/sea-ice-measures/).\n\n### Wetlands MEaSUREs\n\nThe inundated wetlands Earth System Data Record (ESDR) consists of two primary components. First, fine-resolution maps of wetland extent, vegetation type, and seasonal inundation dynamics, derived from SAR for regional and continental-scale areas covering crucial wetlands systems. Second, global coarse-resolution time series mappings of inundated area fraction at ~25 km resolution derived from multiple satellite remote sensing observations including passive and active microwave sensors and optical data sets optimized for inundation detection. These datasets are provided on a bi-monthly basis for 1992-1999 and daily for 2000 onward. Annual summary products and a daily near real time (NRT) dataset with 2-3 day latency are also provided. Further information can be found [here](https://asf.alaska.edu/data-sets/derived-data-sets/wetlands-measures/).\n", + "DISPLACEMENT": "# Displacement Tool\nThe OPERA Sentinel-1 Displacement Products are high-quality Interferometric Synthetic Aperture Radar (InSAR)-derived displacement data with reduced decorrelation noise using a hybrid Persistent Scatterer (PS) and Distributed Scatterer (DS) time series processing approach. These products provide information on anthropogenic and natural movements of the Earth's surface, such as subsidence, tectonics, and landslides. The products will cover North America and be back-processed through the start of the Sentinel-1 mission. New products will be generated as Sentinel-1 data becomes available.\n\nThe Displacement Tool provides the ability to visualize and interact with these products. \n\n## Map Layers\n\n### Cumulative Deformation\n\n### Velocity ", "DOWNLOADING_1": "#Downloading\n\n## Session Authentication\n\nasf_search supports downloading data, both from search results as provided by the search functions, and directly on product URLs. An authenticated session is generally required. asf_search uses ```Requests```. Using .netrc credentials is the preferred method for authentication. More information on .netrc authentication can be found [here](https://requests.readthedocs.io/en/latest/user/authentication/#netrc-authentication).\n\nExample using .netrc:\n\n\tresults = ....\n\tresults.download(path='....')\n\nIf not using .netrc credentials, you may authenticate using an ```ASFSession``` object and one of the following authentication methods. ```ASFSession``` is a subclass of ```Session```. The session should be passed to whichever download method is being called, can be re-used, and is thread safe. \n\n- ```auth_with_creds('user', 'pass)```\n- ```auth_with_token('EDL token')```\n- ```auth_with_cookiejar(http.cookiejar)```\n\nExample with manual authentication:\n\n\tresults = asf_search.granule_search([...])\n\tsession = asf_search.ASFSession().auth_with_creds('user', 'pass')\n\tresults.download(path='/Users/SARGuru/data', session=session)\n\nasf_search also supports downloading an arbitrary list of URLs. All of the available authentication methods are supported:\n\n\turls = [...]\n\tasf_search.download_urls(urls=urls, path='/Users/SARGuru/data', session=ASFSession().auth_with_token('EDL token'))\n\nAlso note that ```ASFSearchResults.download()``` and the generic ```download_urls()``` function both accept a ```processes``` parameter which allows for parallel downloads.\n\n## Methods\n### download_urls()\n\nDownloads all products from the specified URLs to the specified location.\n\n**args**\n\n- urls: List of URLs from which to download\n- path: Local path in which to save the product\n- session: The session to use, in most cases should be authenticated beforehand\n- processes: Number of download processes to use. Defaults to 1 (i.e. sequential download)\n\n### download_url()\n\nDownloads a product from the specified URL to the specified location and (optional) filename.\n\n**args**\n\n- url: URL from which to download\n- path: Local path in which to save the product\n- filename: Optional filename to be used, extracted from the URL by default\n- session: The session to use, in most cases should be authenticated beforehand\n\n### remotezip()\n\nConfigures and returns an authenticated ```remotezip.RemoteZip``` object, allowing downloading of\nspecific files from a given zip archive without downloading the entire archive.\n\n**args**\n\n- url: URL from which to download a zip archive\n- session: Authenticated ```ASFSession``` that RemoteZip will use to download from the zip product\n\n**returns:**\n\n- `remotezip.RemoteZip` object authenticated with the passed _ASFSession_ object\n\n## Export Formats\nasf_search provides multiple export formats, in addition to the default asf_search format. Available formats are: geojson, csv, metalink, kml, jsonlite, jsonlite2.\n\nExamples:\n\n\tresults = ....\n\twith open(\"search_results.csv\", \"w\") as f:\n\t\tf.writelines(results.csv())\n\n\tresults = ....\n\twith open(\"search_results_jsonlite.json\", \"w\") as f:\n\t\tf.writelines(results.jsonlite())\n\n", "EVENTS_SEARCH_1": "# Event Search Type\n\n## What is Event Search?\nEvent search harnesses the capabilities of SAR proccessing to monitor natural disasters. Currently supported hazards are volcanic eruptions and earthquakes. Generated products include fully terrain corrected image time series, as well as interferometric SAR data over areas affected by natural disasters. To facilitate full automation, the processing flow is triggered automatically by existing hazard alert systems such as the USGS Earthquake Notification Service. Event monitoring through Vertex is based on technology developed within SARVIEWS through grant NNX12AQ38G. Visit the [Events (SARVIEWS) documentation](/datasets/events_about) for more information.\n\n## How to use Vertex Event Search\nVisit **[ASF's Vertex](https://search.asf.alaska.edu)** to begin using the Event search.\n\n### **Beginning your Event Search**\n\n- When you select **Event** search type, a search will be performed, and all available events will be displayed. As with other search types, there are filters available to limit or refine your search results.\n- Click **Event Search** to enter an event name or partial name. You may also select the desired event from the drop down list displayed when you click the field.\n- Under **Event Types**, you can choose which event types you wish to be displayed. Currently, there are Earthquake and Volcano events.\n- You may select a **Start Date** or **End Date**.\n- Click **Filters** for more options\n\t- You may toggle the **Active Events Only** switch to display only active events. The default is to display all events, including inactive events.\n\t- You may adjust the **Magnitude** slider to filter earthquakes by your desired magnitude range. *Note:* This filter applies only to earthquake events. If your search includes volcanoes, these will continue to be displayed in your search results.\n- Once you have selected your desired Filters, click **Search** to update your search results.\n\n#### **Product Filters**\n- **Path and Frame Filters** are available. You may enter a single path or frame, or a range.\n\t- Click **Clear** to clear the entered path and frame values.\n\t- Note that **Path and Frame** will filter the displayed products within each event.\n- Under **Product Type**, you may select one or more product types. This will filter the displayed products within each event.\n\n### **Interacting with Event Search Results**\nWhile in Event Search type, you will notice many familiar controls in the results panel. The events are shown in the left column. The Volcano and Earthquake icons note what type of event each result is. The center column lists the detail and metadata for the selected event. The Files for the selected event are shown in the right column.\n\n**Result Panel Controls**\n\n- At the top left of the results panel, you will see the number of events returned by your search.\n- **Zoom** will *Zoom to results* magnifying the map area of the Earth where the event is located.\n- **Queue** will *Add all results to Downloads* allowing you to add all event products to the download queue.\n\t- You may choose to add **All Event Products** or **Selected Event Products** to the download queue. You may select individual files in the right column.\n- **Export** will download the Bulk Download Script. This Python script allows you to download all products from the selected scene.\n- **On Demand** will allow you to *Add all results to On Demand queue* to do custom processing on the scenes. Depending on the types of files associated with the chosen event, you may be able to add RTC or InSAR jobs to your queue. To learn more click [here](https://hyp3-docs.asf.alaska.edu/using/vertex/).\n- **Copy** allows you to copy either the **Scene IDs** or the download **URLs**.\n\t- You may choose to copy either **All** Scene IDs or URLs, or only copy **Selected** Scene IDs or URLs. You may select individual files in the right column.\n- The Events column (left).\n\t- Each event has either an earthquake or a volcano icon to the left of it, to help you quickly identify the event type.\n\t- Click **Zoom to Event** to magnify the map area of the Earth where the event is located.\n- The Event Detail column (middle).\n\t- The event details are listed here. This includes the event processing start and stop time. For earthquakes, the magnitude and depth is also displayed.\n\t- You may **Copy** the Event ID.\n\t- For earthquake events, the **USGS ID** is listed. For volcanoes, the **Smithsonian ID** is listed. Click the link to go to the USGS or Smithsonian event page.\n\t- Adjust the **Geographic Search Polygon Scale** slider as desired. The Area of Interest polygon will also update on the map.\n\t- Once you are happy with the **Geographic Search Polygon Scale**, click **Geographic** to launch a Geographic search using the event's Area of Interest & dates.\n\t- Click **List** to launch a list search including all of the event's product scenes.\n\t- The eye icon labeled **Open in Image Viewer** opens a larger browse viewer window.\n\t\t- *Note*: When viewing InSAR images in the image viewer, the wrapped browse image is displayed. The unwrapped browse image is available in the downloaded product.\n\t\t- In the browse viewer, **zoom** using the **+** or **-** buttons. You may also zoom and pan using the mouse.\n\t\t- Click or scroll through the thumbnails at the bottom to see other browse images for the selected event.\n\t\t- The scene metadata is listed on the right side of the browse viewer window.\n\t\t- Under **File**, you may click the button labeled **RTC GAMMA** or **INSAR GAMMA** for more options\n\t\t\t- Click **Download File** to download the selected product.\n\t\t\t- Click **Add file to queue** to add it to your Download queue.\n\t\t\t- Click **Reference Scenes** to copy the reference scene names to the clipboard. These may be saved in a file or used in **List** Search.\n\t\t\t- Click **Pin Browse to Map** to pin the browse image to the map. Once pinned, you may click this button again to unpin.\n\t- Click the **Download this image** icon to download the browse image.\n\t- Click the **Pin** icon to pin the selected browse image to the map. Once pinned, you may click this button again to unpin.\n- The Files column (right).\n\t- The total number of files for the selected event is listed in this column.\n\t- You may sort the files using the **Sort By** and **Order** buttons at the top of the column.\n\t\t- Under **Sort By**, you may choose **Date**, **Path**, or **Frame**. \n\t\t- Click the **Order Arrow** to switch between ascending and descending order.\n\t- Click **Product Criteria** to open the Search Filters.\n\t- Click the **checkboxes** next to each file to select or deselect the file. The selected files will be pinned onto the map. Once your desired files are selected, you may also use the **Download** or **Copy** controls in the top left of the results panel to interact with selected products.\n\t- Click **On Demand** to add the selected file to your On Demand queue for further processing.\n\t- Click the **Shopping Cart** icon to add the selected file to your Download queue.\n\t- Click **Download** to download the selected file.\n\t- *Note*: You must be logged in to download products.\n\n\n", "EXCEPTIONS_1": "# Exceptions\n\n**ASFError(Exception):**\n\n- Base ASF Exception, not intended for direct use\n\n**ASFSearchError(ASFError):**\n\n- Base search-related Exception\n\n**ASFSearch4xxError(ASFSearchError):**\n\n- Raise when SearchAPI returns a 4xx error\n\n**ASFSearch5xxError(ASFSearchError):**\n\n- Raise when SearchAPI returns a 5xx error\n\n**ASFServerError(ASFSearchError):**\n\n- Raise when SearchAPI returns an unknown error\n\n**ASFBaselineError(ASFSearchError):**\n\n- Raise when baseline related errors occur\n\n**ASFDownloadError(ASFError):**\n\n- Base download-related Exception\n\n**ASFAuthenticationError(ASFError):**\n\n- Base download-related Exception", diff --git a/phrase_json/es.json b/phrase_json/es.json index 32da894..6987718 100644 --- a/phrase_json/es.json +++ b/phrase_json/es.json @@ -8,6 +8,7 @@ "BEST_PRACTICES": "\n# asf_search Mejores Prácticas\n\nAdemás de cubrir las mejores prácticas, esta página también contiene técnicas avanzadas de búsqueda y sirve como la \"filosofía de asf_search\".\n\nLos temas cubiertos incluyen:\n\n- Recomendaciones generales, incluyendo\n trabajar con resultados, rendimiento, filtros y tipos de búsqueda comunes, y conteo\n- Especificaciones para algunos conjuntos de datos\n- Búsquedas de granulados y productos y el método preferido para estos\n- Búsquedas secundarias como apilamiento\n- Método de autenticación recomendado y descarga\n- Técnicas avanzadas de búsqueda, incluyendo rangos, subclases, grandes conjuntos de resultados, y más\n\n## Recomendaciones Generales\nEsta sección contiene información sobre conjuntos de resultados, rendimiento general, los diferentes tipos de búsqueda disponibles, ejemplos de filtros comunes y conteo.\n\n### Conjuntos de Resultados\nLos resultados de búsqueda se devuelven como un objeto `ASFSearchResults`, una subclase de `User List`, que contiene una lista de objetos `ASFProduct`. Cada una de estas clases proporciona alguna funcionalidad adicional para ayudar a trabajar con los resultados y productos individuales.\n`ASFProduct` proporciona una serie de campos de metadatos, tales como:\n\n- Coordenadas geográficas\n- Latitud/Longitud\n- Tipo de forma\n- Metadatos de escena y producto\n- Ruta, marco\n- Plataforma, haz, polarización\n- Nombre de archivo, tamaño, URL\n\nLas coordenadas geográficas se almacenan en el atributo geometría:\n\n`results[0].geometry`\n\nOtros metadatos están disponibles a través del atributo propiedades:\n\n`results[0].properties`\n\nLos objetos `ASFProduct` proporcionan serialización basada en geojson, en forma de un fragmento de característica geojson:\n\n`print(results[0])`\n\n`ASFSearchResults` también admite los siguientes formatos de salida:\n\n- csv\n- jsonlite\n- jsonlite2\n- metalink\n- kml\n\n### Rendimiento general\nCuando se busca múltiples productos, es más rápido buscar todos los productos a la vez en una sola búsqueda, en lugar de ejecutar una consulta separada para cada producto, lo que implica múltiples solicitudes https.\n\n``` python\nimport asf_search as asf\n\ngranules = ['S1B_IW_GRDH_1SDV_20161124T032008_20161124T032033_003095_005430_9906', 'S1-GUNW-D-R-087-tops-20190301_20190223-161540-20645N_18637N-PP-7a85-v2_0_1', 'ALPSRP111041130']\n\n# ESTO ES LENTO Y HACE MÁS SOLICITUDES DE RED DE LAS NECESARIAS\nbatched_results = ASFSearchResults([])\nfor granule in granules:\n unbatched_response = asf.granule_search(granules_list=granule)\n batched_results.extend(batched_results)\n\n# ESTO SIEMPRE SERÁ MÁS RÁPIDO\nfast_results = asf.granule_search(granules_list=granules)\n```\n\nSi necesita realizar operaciones intermedias en resultados grandes (como escribir metadatos en un archivo o llamar a algún proceso externo en los resultados), use el método `search_generator()` para operar en los resultados a medida que se devuelven página por página (el tamaño de página predeterminado es 250).\n\n``` python\nimport asf_search as asf\n\nopts = asf.ASFSearchOptions(platform=asf.DATASET.SENTINEL1, maxResults=1000)\n\nfor page in asf.search_generator(opts=opts):\n foo(page)\n```\n\n\n### Diferencias entre tipos de búsqueda\nPara ver detalles sobre los diferentes tipos de búsqueda, consulte la sección [Searching](/asf_search/searching/).\n\n### Filtros Comunes\nLas opciones de búsqueda se pueden especificar utilizando kwargs, lo que también permite manejarlas utilizando un diccionario:\n\n\topts = {\n \t'platform': asf.PLATFORM.ALOS,\n \t'start': '2010-01-01T00:00:00Z',\n \t'end': '2010-02-01T23:59:59Z'\n\t}\n\nA continuación se presentan algunos ejemplos de filtros comunes:\n\n\tresults = asf.geo_search(\n \tintersectsWith='POLYGON((-91.97 28.78,-88.85 28.78,-88.85 30.31,-91.97 30.31,-91.97 28.78))',\n \tplatform=asf.PLATFORM.UAVSAR,\n \tprocessingLevel=asf.PRODUCT_TYPE.METADATA,\n\t\tmaxResults=250)\n\n### search_count()\nPuede usar el método `search_count()` para devolver el conteo total de resultados que coinciden con las opciones de búsqueda pasadas.\n\nEste ejemplo devuelve el tamaño actual del catálogo SENTINEL1:\n\n opts = {\n 'platform': asf.PLATFORM.SENTINEL1}\n count = asf.search_count(**opts)\n\n## Especificaciones del Conjunto de Datos\nSe proporcionan constantes para cada conjunto de datos. La lista de constantes se puede encontrar [aquí](https://github.com/asfadmin/Discovery-asf_search/blob/master/asf_search/constants/DATASET.py).\n\nEjemplo básico de búsqueda de conjunto de datos:\n\n sentinel_results = asf.search(dataset=asf.DATASET.SENTINEL1, maxResults=250)\n\nPuede ver los metadatos de sus resultados a través del diccionario properties:\n\n sentinel_results[0].properties\n\nO puede ver los metadatos como un diccionario con formato geojson:\n\n sentinel_results.geojson()\n\n### NISAR\nasf_search admite la búsqueda de listas de nombres cortos mediante la palabra clave `shortName`.\nLos datos de NISAR actualmente disponibles que proporciona CMR carecen de atributos adicionales buscables.\nPor lo tanto, la mejor manera de buscar resultados de NISAR es mediante combinaciones de las palabras clave `shortName`, `dataset`, `platform`, y `granule_list`/`product_list`.\n\nEjemplo de NISAR\n\n nisar_gslc_gunw = asf.search(shortName=['NISAR_L2_GSLC_V1', 'NISAR_L2_GUNW_V1'], opts=search_opts, maxResults=250)\n print(nisar_gslc_gunw)\n\n### Opera-S1\nEl conjunto de datos Opera tiene disponibles tanto productos estándar como productos de CalVal (calibración/validación).\nPor favor, tenga en cuenta que los productos de CalVal se tratan como su propio conjunto de datos en asf_search.\nAmbos se pueden encontrar en la [lista de constantes](https://github.com/asfadmin/Discovery-asf_search/blob/master/asf_search/constants/DATASET.py).\n\n### SLC-Burst\nEl conjunto de datos SLC Burst tiene tanto datos tiff como xml asociados con una sola entrada en CMR. Para acceder a los datos xml,\nconsulte la sección sobre [descarga de archivos adicionales](#downloading-additional-files).\n\n`fullBurstID`, `relativeBurstID` y `absoluteBurstID` son filtros específicos de SLC Burst. Para\nobtener una pila temporal de productos sobre un solo marco de ráfaga, use `fullBurstID`, que se comparte entre\ntodas las ráfagas sobre un solo marco.\n\n### Lectura Adicional\nPara obtener más información sobre las constantes y palabras clave disponibles, consulte la sección [Keywords](/asf_search/searching/#keywords).\n\n## Especificaciones de Búsqueda\nEsta sección contiene información sobre búsquedas de granulados y productos, búsquedas secundarias,\ny otros detalles de búsqueda.\n\n### Búsqueda de Granulados y Productos\n`granule_search()` y `product_search()` son similares.\nLas búsquedas de granulados (también llamadas escenas) incluyen todos los tipos de archivos para el granulado especificado, mientras que las búsquedas de productos especifican un tipo de archivo.\nLas búsquedas de granulados pueden ser 1:many, mientras que una búsqueda de productos siempre será 1:1.\n\nEjemplo de búsqueda de granulados:\n\n granule_list = [\n 'S1B_IW_GRDH_1SDV_20190822T151551_20190822T151616_017700_0214D2_6084',\n 'S1B_IW_GRDH_1SDV_20190810T151550_20190810T151615_017525_020F5A_2F74',\n 'S1B_IW_GRDH_1SDV_20190729T151549_20190729T151614_017350_020A0A_C3E2',\n 'S1B_IW_GRDH_1SDV_20190717T151548_20190717T151613_017175_0204EA_4181',\n 'S1B_IW_GRDH_1SDV_20190705T151548_20190705T151613_017000_01FFC4_24EC',\n 'S1B_IW_GRDH_1SDV_20190623T151547_20190623T151612_016825_01FA95_14B9',\n 'S1B_IW_GRDH_1SDV_20190611T151546_20190611T151611_016650_01F566_D7CE',\n 'S1B_IW_GRDH_1SDV_20190530T151546_20190530T151611_016475_01F02E_BF97',\n 'S1B_IW_GRDH_1SDV_20190518T151545_20190518T151610_016300_01EAD8_9308',\n 'S1B_IW_GRDH_1SDV_20190506T151544_20190506T151609_016125_01E56C_1D67'\n ]\n results = asf.granule_search(granule_list)\n print(results)\n\nEjemplo de búsqueda de productos:\n\n product_list = [\n 'S1A_IW_GRDH_1SDV_20190809T001336_20190809T001401_028485_033839_78A1-GRD_HD',\n 'S1A_IW_GRDH_1SDV_20150322T000454_20150322T000524_005137_006794_56E3-GRD_HD',\n 'S1A_IW_GRDH_1SDV_20160121T001256_20160121T001321_009585_00DF26_5B84-GRD_HD',\n 'S1A_IW_GRDH_1SDV_20151117T000448_20151117T000513_008637_00C455_3DC2-GRD_HD'\n ]\n results = asf.product_search(product_list)\n print(results)\n\n`granule_search()` y `product_search()` no hacen uso de otros filtros de búsqueda, pero aceptarán kwargs para mantener la consistencia con otras funciones de búsqueda:\n\n results = asf.granule_search(granule_list=granule_list)\n print(f'{len(results)} resultados encontrados')\n\n### Nota sobre métodos incorrectos\nGeneralmente se prefiere \"colapsar\" muchas consultas pequeñas en menos consultas grandes. Es decir, puede ser fácil y lógicamente razonable ejecutar una serie de pequeñas consultas `granule_search()` a través de un bucle `foreach` sobre cada uno de los elementos de la lista original de granulados. **Por favor, no haga esto.** Consume muchos recursos tanto en ASF como en CMR.\n\nEn su lugar, combine sus consultas pequeñas en una consulta grande siempre que sea posible, como se muestra arriba, y luego postprocese los resultados localmente. `granule_search()` y `product_search()` pueden soportar listas muy grandes, y las dividirán internamente cuando sea necesario.\n\n### frame vs asfframe\nAl usar la palabra clave `frame` con ciertas plataformas/conjuntos de datos, asf_search cambiará implícitamente a usar la palabra clave `asfframe` en el momento de la búsqueda. Las plataformas/conjuntos de datos que esto afecta son:\n\n- `SENTINEL-1A/B`\n- `ALOS`\n\nEn la consulta a CMR, esto significa buscar por el atributo adicional `FRAME_NUMBER` en lugar de `CENTER_ESA_FRAME`.\nUna forma de evitar esto en las búsquedas y usar `CENTER_ESA_FRAME` con las plataformas/conjuntos de datos mencionados es usar `cmr_keywords`:\n\n`asf.search(platform=asf.PLATFORM.SENTINEL1, cmr_keywords=[('attribute[]', 'int,CENTER_ESA_FRAME,1001')], maxResults=250)`\n\n### Apilamiento\nUna vez que haya identificado un conjunto de resultados o un ID de producto, es posible que desee construir una pila de línea base basada en esos resultados.\nPuede usar los métodos `stack()` o `stack_from_id()` para lograr esto.\n\n`stack_from_id()` se proporciona en gran medida por conveniencia: internamente, realiza una `product_search()` usando el ID proporcionado y luego devuelve los resultados del método `stack()` de ese producto.\nPor esta razón, se recomienda que si tiene un objeto `ASFProduct` a mano, lo use para construir su pila directamente, ya que elimina la necesidad de la acción de búsqueda adicional.\nPara otros casos donde tiene parámetros que describen su escena de referencia pero no un objeto `ASFProduct`, es apropiado usar una de las diversas funciones de búsqueda disponibles para obtener primero un `ASFProduct`.\n\nUn ejemplo básico usando\n `ASFProduct.stack()`:\n\n import asf_search as asf\n\n reference = asf.product_search('S1A_IW_SLC__1SDV_20220215T225119_20220215T225146_041930_04FE2E_9252-SLC')[0]\n\n print(reference.stack())\n\nLos resultados son un objeto estándar `ASFSearchResults` que contiene una lista de objetos `ASFProduct`, cada uno con toda la funcionalidad habitual.\nHay 2 campos adicionales en los objetos `ASFProduct`: `temporalBaseline` y `perpendicularBaseline`.\n`temporalBaseline` describe el desplazamiento temporal en días desde la escena de referencia utilizada para construir la pila.\n`perpendicularBaseline` describe el desplazamiento perpendicular en metros desde la escena de referencia utilizada para construir la pila.\nLa escena de referencia se incluye en la pila y siempre tendrá una línea base temporal y perpendicular de 0.\n\n### Plataforma vs Conjunto de Datos\nasf_search proporciona 2 palabras clave principales con diferencias sutiles:\n\n- `platform`\n- `dataset`\n\n`platform` se asigna a la palabra clave `platform[]` de CMR; valores como `Sentinel-1A`, `UAVSAR`, `ALOS`. Una limitación de buscar por \nplataforma es que para plataformas como `Sentinel-1A` hay muchos tipos de productos derivados de Sentinel-1 (`OPERA-S1`, `SLC-BURST`). \nPara cada producto `SLC`, hay 27 productos adicionales `OPERA-S1` y `SLC-BURST`, lo que puede llevar a resultados homogéneos dependiendo de sus filtros de búsqueda.\n\nLa palabra clave `dataset` sirve como una solución para esto. Cada \"dataset\" es una colección de IDs de concepto generalmente asociada con conjuntos de datos comúnmente usados.\n\n``` python\n# Al momento de escribir esto, probablemente contendrá en su mayoría productos `OPERA-S1` y/o `SLC-BURST`\nplatform_results = asf.search(dataset=asf.PLATFORM.SENTINEL1, maxResults=250)\n\n# Contendrá todo excepto productos `OPERA-S1` y/o `SLC-BURST`\ndataset_results = asf.search(dataset=asf.DATASET.SENTINEL1, maxResults=250)\n\n# Contendrá productos OPERA-S1\nopera_results = asf.search(dataset=asf.DATASET.OPERA_S1, maxResults=250)\n\n# Contendrá productos SLC-BURST\nslc_burst_results = asf.search(dataset=asf.DATASET.SLC_BURST, maxResults=250)\n```\n\n### Host CMR UAT\nasf_search por defecto consulta contra la API de producción de CMR, `cmr.earthdata.nasa.gov`.\nPara usar otro host de CMR, configure la palabra clave `host` con `ASFSearchOptions`.\n\n``` python\nuat_opts = asf.ASFSearchOptions(host='cmr.uat.earthdata.nasa.gov', maxResults=250)\nuat_results = asf.search(opts=uat_opts)\n```\n\n### Listas de Campañas\nasf_search proporcione un método incorporado para buscar campañas por plataforma.\n\n`asf.campaigns(platform=asf.PLATFORM.SENTINEL1A)`\n\n### Alias de Palabras Clave de CMR\nasf_search utiliza los siguientes alias de palabras clave internamente con los IDs de concepto de colección correspondientes para mejorar el rendimiento de la búsqueda:\n\n- `platform`\n- `processingLevel`\n\nLas listas de alias se actualizan según sea necesario con cada versión, pero si no está encontrando los resultados esperados, entonces la lista de alias puede estar desactualizada.\nPara omitir el paso de alias, configure la palabra clave `collectionAlias` en false con `ASFSearchOptions`.\n\n``` python\nopts = asf.ASFSearchOptions(collectionAlias=False, maxResults=250)\nunaliased_results = asf.search(opts=opts)\n```\n\n**Por favor, tenga en cuenta que esto resultará en tiempos de búsqueda promedio más lentos.** Si faltan resultados de nuevos conjuntos de datos, infórmelo como un [problema en GitHub](https://github.com/asfadmin/Discovery-asf_search/issues) con el ID de concepto y el nombre de la colección que falta en el conjunto de datos.\n\n## Descarga\n\nEste [cuaderno de Jupyter](https://github.com/asfadmin/Discovery-asf_search/blob/master/examples/5-Download.ipynb) cubre los métodos de autenticación disponibles.\nUna vez autenticado, proporcione un flujo de trabajo para descargar los resultados de la búsqueda.\n\n### Autenticación Recomendada\nEl uso de credenciales .netrc es el método preferido para la autenticación.\nEsta [guía](https://www.labkey.org/Documentation/wiki-page.view?name=netrc) le mostrará cómo configurar un archivo .netrc.\nLas solicitudes intentarán obtener las credenciales de autenticación para el nombre de host de la URL desde su archivo .netrc.\nEl archivo .netrc anula los encabezados de autenticación HTTP en bruto establecidos con `headers=`.\nSi se encuentran las credenciales para el nombre de host, la solicitud se envía con HTTP Basic Auth.\n\n## Técnicas Avanzadas de Búsqueda\nA continuación encontrará recomendaciones para técnicas avanzadas de búsqueda, como subclasificación, autenticación y el método preferido para búsquedas grandes.\n\n### Sentinel-1 y GroupID\nLos productos de Sentinel-1, así como la mayoría de los conjuntos de datos derivados de Sentinel-1 (OPERA-S1, SLC-Burst) tienen un ID de grupo asociado con ellos.\nEsto significa que obtener la escena de origen original, o cualquier producto asociado con esa escena, es tan simple como usar la palabra clave `groupID` \nen una búsqueda.\n\n``` python\nimport asf_search as asf\n\nburst_name = 'S1_279916_IW1_20230418T162849_VV_A7E1-BURST'\nburst_granule = asf.search(granule_list=['S1_279916_IW1_20230418T162849_VV_A7E1-BURST'])[0]\n\ngroupID = burst_granule.properties['groupID']\n\n# gets the parent SLC of the burst product\nparent_slc = asf.search(groupID=groupID, processingLevel=asf.PRODUCT_TYPE.SLC)[0]\n\n# gets all other SLC Bursts associated with the same parent SLC\nbursts_in_same_scene = asf.search(groupID=groupID, processingLevel=asf.PRODUCT_TYPE.BURST)\n\n# gets ALL Sentinel-1 products and derived products available for the parent scene\nall_products_for_scene = asf.search(groupID=groupID)\n```\n\n### Subclasificación\n`ASFProduct` es la clase base para todos los objetos de resultados de búsqueda.\nHay varias subclases de `ASFProduct` que se utilizan para plataformas específicas y tipos de productos con propiedades/funcionalidad únicas.\n\nMétodos clave:\n\n- `geojson()`\n- `download()`\n- `stack()`\n- `get_stack_opts()` (devuelve None en `ASFProduct`, implementado por la subclase `ASFStackableProduct` y sus subclases)\n- `centroid()`\n- `remotezip()` (requiere que se instale la dependencia opcional)\n- `get_property_paths()` (obtiene las palabras clave del producto y sus rutas en el diccionario umm)\n- `translate_product()` (lee las propiedades de umm, llena `properties` con la palabra clave asociada)\n- `get_sort_keys()`\n- `umm_get()`\n\nPropiedades Clave: \n\n- `properties`\n- `_base_properties` (lo que `get_property_paths()` use para encontrar valores en las `properties` JSON de umm)\n- `umm` (el umm JSON del producto desde CMR)\n- `metadata` (el JSON de metadatos del producto desde CMR)\n\n`ASFStackableProduct` es una subclase importante de `ASFProduct`, de la cual se derivan los tipos de productos apilables destinados al análisis de series temporales.\n`ASFStackableProduct` tiene una enumeración de clase, `BaselineCalcType`, que determina cómo se manejan los cálculos de pila perpendicular.\nCada subclase realiza un seguimiento de su tipo de cálculo de línea base a través de la propiedad `baseline_type`.\n\nHereda: `ASFProduct`\n\nHeredado por: `ALOSProduct`; `ERSProduct`; `JERSProduct`; `RADARSATProduct`; `S1Product`;\n`S1BurstProduct`; `OPERAS1Product`, `ARIAS1GUNWProduct`\n\nMétodos Clave:\n\n- `get_baseline_calc_properties()`\n- `get_stack_opts()` (sobrescribe `ASFProduct`)\n- `is_valid_reference()`\n- `get_default_baseline_product_type()`\n\nDefiniciones Clave para la Enumeración de Clase `BaselineCalcType`:\n\n- `PRE_CALCULATED`: tiene un valor `insarBaseline` pre-calculado que se usará para cálculos perpendiculares\n- `CALCULATED`: use vectores de estado de posición/velocidad y tiempo de nodo ascendente para cálculos perpendiculares\n\nCampos Clave:\n\n- `baseline`\n- `baseline_type` (`BaselineCalcType.PRE_CALCULATED` por defecto o `BaselineCalcType.CALCULATED`)\n\nDado que `ASFProduct` está diseñado para subclasificación, esto significa que usted puede proporcionar sus propias subclases personalizadas derivadas directamente de `ASFProduct` o incluso de una subclase preexistente como `S1Product` o `OperaS1Product`.\n\nPara obtener más información sobre la subclasificación, consulte el [cuaderno de Jupyter](https://github.com/asfadmin/Discovery-asf_search/blob/master/examples/Advanced-Custom-ASFProduct-Subclassing.ipynb).\n\n### Uso de búsquedas autenticadas\nLa descarga de datos y el acceso a algunos datos requieren una sesión autenticada con Earthdata Login.\nPara simplificar este flujo de trabajo, se proporciona la clase `ASFSession`.\n\n auth_with_creds()\n auth_with_token()\n auth_with_cookiejar()\n\nEjemplo de creación de una sesión autenticada:\n\n from getpass import getpass\n session = asf.ASFSession()\n session.auth_with_creds(input('EDL Username'), getpass('EDL Password'))\n\nSe proporciona la clase `ASFSearchOptions` para almacenar y validar parámetros de búsqueda.\nCrear un objeto `ASFSearchOptions` es necesario para pasar nuestra sesión autenticada a `search()`.\n\n search_opts = asf.ASFSearchOptions(\n dataset=asf.DATASET.NISAR,\n session=session)\n\n nisar_response = asf.search(opts=search_opts, maxResults=250)\n\n### search_generator() para grandes conjuntos de resultados\nLa forma recomendada de realizar búsquedas grandes y de larga duración es usar `search_generator()` para obtener los resultados de CMR página por página.\nEsto le permite transmitir resultados a un archivo en caso de que CMR se agote.\nSe pueden usar diferentes formatos de salida.\n\nTenga en cuenta que asf_search consulta a CMR con tamaños de página de 250, por lo que configurar maxResults=500 significa que asf_search tendrá que consultar a CMR dos veces, devolviendo cada vez 250 productos:\n\n`large_results_generator = asf.search_generator(maxResults=500, platform=asf.PLATFORM.SENTINEL1A)`\n\n\twith open(\"search_results.metalink\", \"w\") as f:\n\t\tf.writelines(asf.export.results_to_metalink(large_results_generator))\n\nOtro ejemplo de uso:\n\n\timport asf_search as asf\n\topts = asf.ASFSearchOptions(shortName='ARIA_S1_GUNW')\n\turs = []\n\tfor page in asf.search_generator(opts=opts):\n \turs.extend(product.properties['fileID'] for product in page)\n \tprint(len(urs))\n\n### Descargando archivos adicionales\nAlgunos tipos de productos, como SLC Bursts o productos Opera-S1, tienen varios archivos que se pueden descargar.\nPodemos especificar qué archivos descargar configurando el `fileType` y utilizando la clase de enumeración `FileDownloadType`.\n\nLos archivos adicionales se almacenan en este array:\n\n product.properties['additionalUrls']\n\nPara descargar solo los archivos adicionales:\n\n FileDownloadType.ADDITIONAL_FILES # todo lo que está en 'additionalUrls'\n\nPara descargar el archivo predeterminado:\n\n FileDownloadType.DEFAULT_FILE # El archivo de datos predeterminado, 'url'\n\nPara descargar ambos:\n\n FileDownloadType.ALL_FILES # todo lo anterior\n\nEste ejemplo descargará todos los archivos adicionales bajo el atributo `additionalUrls`:\n\n cslc_results[0].download(session=session, path = './', fileType=asf.FileDownloadType.ADDITIONAL_FILES) \n\nPara ser más específicos, podemos usar los métodos `download_urls()` o `download_url()`\n\n print(f\"Additional urls: {opera_results[0].properties['additionalUrls']}\")\n \n url = opera_results[0].properties['additionalUrls'][0]\n fileName = url.split('/')[-1]\n \n asf.download_url(url, session=session, path ='./', filename=fileName)\n\n### URIs de S3\nAlgunos tipos de productos (Sentinel-1, BURST, OPERA, NISAR) tienen URIs de acceso directo a s3 disponibles. Son accesibles bajo la clave de propiedades `s3Urls`:\n\n`ASFProduct.properties['s3Urls']`.\n\n### Parámetro de Búsqueda de Palabras Clave de CMR\nTambién puede buscar granulados usando `readable_granule_name` a través de la coincidencia de patrones.\n\nPara hacer esto, puede pasar la configuración de búsqueda de palabras clave de CMR directamente con el parámetro de búsqueda `cmr_keywords`.\nEsto le permite pasar cualquier par de palabras clave-valor de CMR válido que no esté cubierto directamente por asf_search, así como configurar el comportamiento del parámetro existente.\n\nMás información sobre la coincidencia de patrones y las opciones de parámetros se puede encontrar [aquí](https://cmr.earthdata.nasa.gov/search/site/docs/search/api.html#Parameter-Options).\n\nEjemplo:\n\n gslc_results = asf.search(granule_list=['*046_009_A_095*'], cmr_keywords=('options[readable_granule_name][pattern]', 'true'), opts=search_opts)\n \n for product in gslc_results:\n print(product.properties['fileID'])\n", "CHANGELOG_1": "# Novedades\n\n\n## ¡Vertex ahora es multilingüe!\n\nVertex ahora es compatible con inglés y español. Si el idioma de su navegador está configurado en español, Vértice usará español de forma predeterminada. También puede seleccionar su idioma preferido en el menú superior. Puede encontrar más información [aquí](/vertex/manual/#language-options).\n\n## Área de interés: Buscar una ubicación\nAhora puede buscar un nombre de ubicación como su área de interés. El campo *Buscar una ubicación* se puede encontrar abriendo la ventana Área de interés. Puede encontrar más información [aquí](/vertex/manual/#area-of-interest-options).\n\n\n## Nueva opción On Demand\n\nLos RTC de Sentinel-1 ahora pueden procesar con un espacio de píxeles de 10 metros. Puede encontrar más información [aquí](https://hyp3-docs.asf.alaska.edu/guides/rtc_product_guide/#pixel-spacing). Puede encontrar más información sobre la lista On Demand [aquí](/vertex/manual/#on-demand-queue).\n\n\n## Descargas mejoradas para Google Chrome\n\nLa funcionalidad mejorada de lista de descargas está disponible en el navegador Google Chrome. Se incluyen indicadores de progreso de descarga y la opción de descargar todos los archivos en la lista. Descargar todo descargará 3 archivos simultáneamente hasta que se hayan descargado todos los archivos de la lista. Puede encontrar más información [aquí](https://docs.asf.alaska.edu/vertex/manual/#google-chrome-browser).\n\n", "CHANGELOG_2": "# Novedades\n\n## Palabra clave \"dataset\"\nLa nueva palabra clave \"dataset\" es la alternativa preferida para búsquedas en la plataforma. Permite obtener resultados de múltiples plataformas a la vez. Se puede encontrar más información [aquí](/api/keywords/#dataset-parameters).\n\n## Nuevo paquete de Python para realizar búsquedas\nasf_search es un paquete de Python para realizar búsquedas en el catálogo de ASF. Además, ofrece funcionalidad básica y soporte de descarga. Está disponible a través de PyPi y Conda. Más información disponible [aquí](/asf_search/basics).\n\n## Múltiples Puntos de Acceso Disponibles\n\nAdemás del punto de acceso de Búsqueda, tenemos múltiples puntos de acceso disponibles para todas sus necesidades de la API de Búsqueda. A continuación, se ofrece una breve descripción de lo que está disponible. Más detalles sobre estos puntos de acceso y cómo usarlos se pueden encontrar en la página de [Palabras clave](/api/keywords).\n\n\n**Punto de Acceso de Línea Base**\n\nEste punto de acceso se puede utilizar para buscar datos de línea base utilizando escenas de referencia específicas.\n\n**Puntos de Acceso WKT**\n\nEl punto de acceso de validación WKT validará y reparará una entrada WKT. El punto de acceso de Archivos GeoEspaciales a WKT aceptará una solicitud POST con archivos adjuntos. Devolverá el WKT analizado del archivo, así como el WKT envuelto y desenvuelto reparado.\n\n**Punto de Acceso del Analizador de Fechas**\n\nEste punto de acceso se puede utilizar para verificar cómo se analizan las fechas por la API de Búsqueda.\n\n**Punto de Acceso de Lista de Misiones**\n\nEste punto de acceso enumera todas las misiones (también conocidas como campañas o colecciones) para todos los conjuntos de datos.\n\n**Punto de Acceso de Salud**\n\nEste punto de acceso se utiliza para verificar la salud de la API de Búsqueda. También proporciona información sobre la salud de CMR.\n\n## Formato de Salida Preferido para la API de Búsqueda\n\nGeoJSON es el formato de salida preferido para la API de Búsqueda. Puede especificar el formato de salida con la palabra clave \"output\". Si encuentra un campo requerido que no está incluido en la salida GeoJSON, por favor contacte a ASF usando la información a continuación o comuníquese directamente con el equipo en .\n", + "CHARACTERS": "caracteres", "COOKBOOK_1": "# Consejos y Trucos para la API de Búsqueda\n\n¡Esta es una colección de algunos consejos y trucos para la API de Búsqueda!\n\n## Nuevo paquete de Python para realizar búsquedas\nasf_search es un paquete de Python para realizar búsquedas en el catálogo de ASF. Además, ofrece funcionalidad básica y soporte de descarga. Está disponible a través de PyPi y Conda. Puede encontrar más información [aquí](/asf_search/basics).\n\n## Limitación de velocidad en el punto final de búsqueda\nSe ha implementado una limitación de velocidad en el [punto final de búsqueda](/api/keywords/#search-endpoint). La limitación de velocidad es por dirección IP y actualmente es de 250 consultas por minuto. Al alcanzar el límite, las consultas adicionales devolverán un HTTP 429 con un mensaje de error. Verifica si tus consultas están devolviendo un pequeño número de resultados. Si es así, puede refinar tus parámetros para combinar conjuntos de resultados en grupos más grandes y luego procesar esos resultados localmente. Por ejemplo, en lugar de buscar en una pequeña área de interés con una consulta individual para cada día, selecciona un rango de fechas más amplio para crear una sola consulta, luego divide los resultados después de haberlos recuperado.\n\n## Copiar/Pegar URL de la API de Búsqueda desde Vertex\n¿Ha completado una búsqueda geoespacial en Vertex que y le gustaría replicar en una consulta de la API de Búsqueda? Haz clic en la flecha hacia abajo debajo de \"Max Results\". Escoja \"API URL...\".\n\nAquí puede ver la URL de la API de Búsqueda que utilizaría para replicar la búsqueda. Puede cambiar el número máximo de resultados y el formato de salida. Una vez que este satisfecho, haga clic en el icono de copia. Ahora puede pegar la consulta en un navegador o interfaz de línea de comandos para ejecutarla.\n\n## Encontrar el Valor de Product_List en Vertex\nEl nombre del producto/archivo se encuentra en los Resultados de Búsqueda de Vertex, en la columna de detalles de los archivos. Puede hacer clic en el icono de copia para copiar el ID del archivo. También puede copiar todos los ID de archivos desde su lista de descargas en Vertex. Una vez que tenga la lista deseada de archivos, puede encontrarlos a través de la API de Búsqueda utilizando la palabra clave product_list.\n\n## Los Resultados de Búsqueda Pueden Convertirse en un Área de Búsqueda\nPuede convertir sus resultados de búsqueda en un área de búsqueda. Primero, exporte sus resultados de búsqueda en formato de salida GeoJSON o KML. Luego, importe su archivo en la búsqueda geoespacial de Vertex. Vertex extraerá el Área de Interés (AOI) de su archivo. Si lo desea, puede agregar filtros y guardar tus filtros de búsqueda o la búsqueda misma.\n\n## Verificar que su Consulta Devuelva el Número Correcto de Resultados\n¿Le gustaría verificar que su consulta haya devuelto el número correcto de resultados? Cambie su salida a \"output=count\" para verificarlo. Si el recuento no coincide, puede considerar acotar su búsqueda utilizando más palabras clave o utilizando la palabra clave \"maxResults\" para limitarla. También puede intentar acortar el rango de fechas para dividir su búsqueda en una serie de búsquedas más pequeñas.\n", "DERIVED_DATASETS_1": "# Tipo de Búsqueda de Conjuntos de Datos Derivados\n\n## ¿Qué son los Conjuntos de Datos Derivados?\n\nLos conjuntos de datos derivados son conjuntos de datos de nivel superior creados utilizando datos SAR. Los conjuntos de datos enumerados a continuación son la colección de ASF.\n\n### Conjunto de Datos de Coherencia e Retrodispersión Interferométrica Estacional Global Sentinel-1\n\nEste conjunto de datos es la representación espacial única en su tipo de firmas de coherencia e retrodispersión interferométrica multianual y global SAR en varias estaciones. La cobertura global abarca todas las masas terrestres y las capas de hielo desde 82 grados de latitud norte hasta 78 grados de latitud sur. El conjunto de datos se deriva del procesamiento interferométrico multitemporal de alta resolución de repetición de pasadas de unos 205,000 datos Sentinel-1 Single-Look-Complex (SLC) adquiridos en modo de banda ancha interferométrica (modo Sentinel-1 IW) desde el 1 de diciembre de 2019 hasta el 30 de noviembre de 2020. Más información se puede encontrar [aquí](https://asf.alaska.edu/datasets/derived/global-seasonal-sentinel-1-interferometric-coherence-and-backscatter-dataset/).\n\n### Observatorio de Mapeo de Capas de Hielo Global (GISMO)\n\nEl sistema radar espacial del Observatorio de Mapeo de Capas de Hielo Global (GISMO) es parte del Proyecto de Incubadora de Instrumentos de la NASA (IIP). GISMO se centra específicamente en medir la topografía de la superficie de las capas de hielo, el espesor de las capas de hielo y en descubrir propiedades físicas del lecho glaciar utilizando SAR. Utilizó radares interferométricos VHF y P-band y probó diferentes métodos de rechazo de interferencias. GISMO logró mapear las propiedades físicas del lecho glaciar a través de hasta 5 km de hielo. El proyecto GISMO documentó las líneas de vuelo sobre la capa de hielo de Groenlandia en 2006, 2007 y 2008. Más información se puede encontrar [aquí](https://asf.alaska.edu/data-sets/derived-data-sets/global-ice-sheet-mapping-orbiter-gismo/).\n\n### Velocidad de Glaciares\n\nEste conjunto de datos fue producido por Evan Burgess y sus colegas de la Universidad de Utah y la Universidad de Alaska Fairbanks utilizando datos ALOS PALSAR. Revela patrones complejos de flujo de glaciares en todo Alaska. Los datos de velocidad están disponibles para su descarga en formatos diseñados tanto para científicos como para educadores. Las velocidades superficiales están disponibles para 47,880 km^2 de hielo glaciar, lo que incluye casi todos los glaciares principales del estado. Información detallada sobre su producción está disponible en [Burgess et al., Nature Communications, 2013](https://www.nature.com/articles/ncomms3146). Más información se puede encontrar [aquí](https://asf.alaska.edu/data-sets/derived-data-sets/glacier-speed/).\n\n### Año Polar Internacional\n\nEl Año Polar Internacional (IPY) es un evento de investigación colaborativa centrado en el Ártico y la Antártida. El IPY 2007-2009 se centró en la investigación colaborativa y exploró extensamente las complejas relaciones entre el Ártico y la Antártida. Más de 60 países y miles de investigadores participaron, investigando más de 200 proyectos. Los temas incluyen las relaciones del Ártico y la Antártida con elementos geofísicos, océanos y hielo marino, la atmósfera de la Tierra, el espacio y las relaciones humanas. ASF alberga un archivo del proyecto IPY titulado el Año Polar Global Interagencia de Instantáneas Polares IPY (GIIPSY). El objetivo de GIIPSY era obtener instantáneas de satélite de alta definición de las regiones polares durante 2007-2008. Más información se puede encontrar [aquí](https://asf.alaska.edu/data-sets/sar-data-sets/international-polar-year-2007-2008/).\n\n### Proyecto de Mapeo Antártico RADARSAT-1 (RAMP)\n\nEl Proyecto de Mapeo Antártico RADARSAT-1 (RAMP) se compone de dos misiones principales, la primera Misión de Mapeo Antártico (AMM-1) y la Misión de Mapeo Antártico Modificada (MAMM). AMM-1 comenzó el 9 de septiembre de 1997 y se completó el 20 de octubre de 1997. Sus objetivos eran adquirir un mapa completo de la Antártida y comprender mejor las relaciones entre los elementos ambientales del continente más al sur. MAMM comenzó el 3 de septiembre de 2000 y se completó el 17 de noviembre de 2000. Planeaba volver a cartografiar la Antártida y medir datos de velocidad del hielo mediante análisis interferométricos y datos de AMM-1. Más información se puede encontrar [aquí](https://asf.alaska.edu/data-sets/derived-data-sets/radarsat-antarctic-mapping-project-ramp/).\n\n### MEaSUREs de Hielo Marino\n\nLas imágenes y productos de datos de hielo marino son respaldados por el programa Making Earth System data records for Use in Research Environments (MEaSUREs) de la NASA. Las imágenes, datos y productos de datos del Ártico y el Océano Austral están disponibles sin costo para usuarios aprobados por el ASF DAAC. Estos incluyen más de 11 años de imágenes de radar de tres días de RADARSAT-1 del hielo marino del Ártico y el Océano Austral, y imágenes SAR originales. Los datos de RADARSAT-1 se han procesado para construir un registro casi decenal del movimiento del hielo a pequeña escala del Ártico y el Océano Austral, un registro del movimiento del hielo del Mar de Bering del norte y mosaicos de imágenes de alta resolución mensuales del Océano Ártico. Más información se puede encontrar [aquí](https://asf.alaska.edu/data-sets/derived-data-sets/sea-ice-measures/).\n\n### MEaSUREs de Humedales\n\nEl Registro de Datos del Sistema Terrestre Inundado (ESDR) de humedales consta de dos componentes principales. En primer lugar, mapas de alta resolución de la extensión de humedales, el tipo de vegetación y la dinámica de inundación estacional, derivados de SAR, para áreas a nivel regional y continental que cubren sistemas de humedales cruciales. En segundo lugar, series temporales de mapeos de la fracción de área inundada a nivel global de resolución gruesa de ~25 km derivados de múltiples observaciones de teledetección por satélite, incluidos sensores de microondas activos y pasivos y conjuntos de datos ópticos optimizados para la detección de inundaciones. Estos conjuntos de datos se proporcionan cada dos meses para el período 1992-1999 y diariamente a partir de 2000 en adelante. También se proporcionan productos resumidos anuales y un conjunto de datos de tiempo real casi diario (NRT) con una latencia de 2-3 días. Más información se puede encontrar [aquí](https://asf.alaska.edu/data-sets/derived-data-sets/wetlands-measures/).\n\n\n", "DOWNLOADING_1": "#Descarga\n\n## Autenticación de sesión\n\nasf_search admite la descarga de datos, tanto de los resultados de búsqueda proporcionados por las funciones de búsqueda, como directamente en las URL de los productos. Por lo general, se requiere una sesión autenticada. asf_search utiliza ```Solicitudes```. El uso de credenciales .netrc es el método preferido para la autenticación. Puede encontrar más información sobre la autenticación .netrc [aquí](https://requests.readthedocs.io/en/latest/user/authentication/#netrc-authentication).\n\nEjemplo usando .netrc:\n\n\tresults = ....\n\tresults.download(path='....')\n\nSi no utiliza credenciales .netrc, puede autenticarse mediante un objeto ```ASFSession``` y uno de los siguientes métodos de autenticación. ```ASFSession``` es una subclase de ```Session```. La sesión debe pasarse a cualquier método de descarga al que se llame, se puede reutilizar y es seguro para subprocesos. \n\n- ```auth_with_creds('user', 'pass)```\n- ```auth_with_token('EDL token')```\n- ```auth_with_cookiejar(http.cookiejar)```\n\nEjemplo con autenticación manual:\n\n\tresults = asf_search.granule_search([...])\n\tsession = asf_search.ASFSession().auth_with_creds('user', 'pass')\n\tresults.download(path='/Users/SARGuru/data', session=session)\n\nasf_search también admite la descarga de una lista arbitraria de URL. Se admiten todos los métodos de autenticación disponibles:\n\n\turls = [...]\n\tasf_search.download_urls(urls=urls, path='/Users/SARGuru/data', session=ASFSession().auth_with_token('EDL token'))\n\nTenga en cuenta también que ```ASFSearchResults.download()``` y la función genérica ```download_urls()``` aceptan un parámetro ```procesos``` que permite descargas paralelas.\n\n## Métodos\n### download_urls()\n\nDescarga todos los productos de las direcciones URL especificadas a la ubicación especificada.\n\n**args**\n\n- urls: Lista de URLs desde las que descargar\n- path: ruta local en la que guardar el producto\n- session: La sesión a utilizar, en la mayoría de los casos debe ser autenticada de antemano\n- processes: Número de procesos de descarga a utilizar. El valor predeterminado es 1 (es decir, descarga secuencial)\n\n### download_url()\n\nDescarga un producto desde la dirección URL especificada a la ubicación especificada y al nombre de archivo (opcional).\n\n**args**\n\n- url: URL desde la que descargar\n- path: ruta local en la que guardar el producto\n- filename: Nombre de archivo opcional a utilizar, extraído de la URL por defecto\n- session: La sesión a utilizar, en la mayoría de los casos debe ser autenticada de antemano\n\n### remotezip()\n\nConfigura y devuelve un objeto ```remotezip.RemoteZip```, que permite descargar\nArchivos específicos de un archivo zip determinado sin descargar todo el archivo.\n\n**args**\n\n- url: URL desde la que descargar un archivo zip\n- session: ```ASFSession``` autenticado que RemoteZip usará para descargar desde el producto zip\n\n**Devuelve:**\n\n- `remotezip.RemoteZip` autenticado con el objeto _ASFSession_ pasado\n\n## Formatos de exportación\nasf_search proporciona varios formatos de exportación, además del formato de asf_search predeterminado. Los formatos disponibles son: geojson, csv, metalink, kml, jsonlite, jsonlite2.\n\nEjemplos:\n\n\tresults = ....\n\twith open(\"search_results.csv\", \"w\") as f:\n\t\tf.writelines(results.csv())\n\n\tresults = ....\n\twith open(\"search_results_jsonlite.json\", \"w\") as f:\n\t\tf.writelines(results.jsonlite())\n\n",