## burst.BurstPair


Represents a pair of Sentinel-1 bursts for interferometric processing.


Usage

``` python
burst.BurstPair(
    primary,
    secondary,
)
```


The primary burst is typically the earlier acquisition, and the secondary is the later acquisition. The pair must have matching burst parameters.


## Parameter Attributes


`primary: Burst`  

`secondary: Burst`  


## Attributes

| Name | Description |
|----|----|
| [baseline_days](#baseline_days) | Temporal baseline in days. |
| [burst_id](#burst_id) | Burst ID of the primary burst. |
| [full_burst_id](#full_burst_id) | ASF-style full burst ID, delegated from the primary burst. |
| [geometry](#geometry) | Burst footprint, looked up via the primary burst. |
| [pass_direction](#pass_direction) | Pass direction, looked up via the primary burst. |
| [polarization](#polarization) | Polarization of the primary burst. |
| [rel_orbit_number](#rel_orbit_number) | Relative orbit number, looked up via the primary burst. |
| [sub_swath](#sub_swath) | Sub-swath of the primary burst. |
| [utm_zone](#utm_zone) | The WGS 84 / UTM zone that holds the pair's footprint, the zone `crs="auto"` uses. |

------------------------------------------------------------------------


#### baseline_days


Temporal baseline in days.


`baseline_days: int`


------------------------------------------------------------------------


#### burst_id


Burst ID of the primary burst.


`burst_id: int`


------------------------------------------------------------------------


#### full_burst_id


ASF-style full burst ID, delegated from the primary burst.


`full_burst_id: str`


##### Raises


`BurstMapUnavailableError`  
If the value was not propagated and the burst map has not been downloaded (see [s1bursts.burstmap.download_burst_map](burstmap.download_burst_map.md#s1bursts.burstmap.download_burst_map)).

`BurstNotInMapError`  
If the burst is not found in the burst map.


------------------------------------------------------------------------


#### geometry


Burst footprint, looked up via the primary burst.


`geometry: Polygon | MultiPolygon`


##### Raises


`BurstMapUnavailableError`  
If the value was not propagated and the burst map has not been downloaded (see [s1bursts.burstmap.download_burst_map](burstmap.download_burst_map.md#s1bursts.burstmap.download_burst_map)).

`BurstNotInMapError`  
If the burst is not found in the burst map.


------------------------------------------------------------------------


#### pass_direction


Pass direction, looked up via the primary burst.


`pass_direction: PassDirection`


##### Raises


`BurstMapUnavailableError`  
If the value was not propagated and the burst map has not been downloaded (see [s1bursts.burstmap.download_burst_map](burstmap.download_burst_map.md#s1bursts.burstmap.download_burst_map)).

`BurstNotInMapError`  
If the burst is not found in the burst map.


------------------------------------------------------------------------


#### polarization


Polarization of the primary burst.


`polarization: Polarization`


------------------------------------------------------------------------


#### rel_orbit_number


Relative orbit number, looked up via the primary burst.


`rel_orbit_number: int`


##### Raises


`BurstMapUnavailableError`  
If the value was not propagated and the burst map has not been downloaded (see [s1bursts.burstmap.download_burst_map](burstmap.download_burst_map.md#s1bursts.burstmap.download_burst_map)).

`BurstNotInMapError`  
If the burst is not found in the burst map.


------------------------------------------------------------------------


#### sub_swath


Sub-swath of the primary burst.


`sub_swath: SubSwath`


------------------------------------------------------------------------


#### utm_zone


The WGS 84 / UTM zone that holds the pair's footprint, the zone `crs="auto"` uses.


`utm_zone: CRS`


The footprint is the primary burst's; both bursts share it. The zone is the one containing the center of the footprint, by the zone boundaries of `freezebase.mgrs.UTMZones`, the ones the MGRS grid uses, Norway and Svalbard exceptions included. A center on a border between two zones takes the eastern one, and one on the equator the northern hemisphere. The zone depends only on the burst ID and sub-swath, so a time series of one burst stays in one zone. Products meant for a composite take the target cell's zone instead, which need not be the zone of every burst.


##### Raises


`NoUTMZoneError`  
If the center lies outside the UTM zones, north of 84 degrees or south of 80 degrees. It is a `ValueError`.

`BurstMapUnavailableError`  
If the footprint was not propagated and the burst map has not been downloaded (see [s1bursts.burstmap.download_burst_map](burstmap.download_burst_map.md#s1bursts.burstmap.download_burst_map)).

`BurstNotInMapError`  
If the burst is not found in the burst map.


## Methods

| Name | Description |
|----|----|
| [__post_init__()](#__post_init__) | Validate burst compatibility. |

------------------------------------------------------------------------


#### \_\_post_init\_\_()


Validate burst compatibility.


Usage

``` python
__post_init__()
```


##### Raises


`ValueError`  
If bursts have mismatched burst_id, sub_swath, or polarization, or if the temporal baseline is not positive.
