# xsar

radarSat2 Level 1 python reader for efficient xarray/dask based processor

# Install

```
conda install -c conda-forge xradarsat2
```

```pycon
>>> import xradarsat2
>>> folder_path = "/level1/root/directory"
>>> xradarsat2.rs2_reader(folder_path)
DataTree('None', parent=None)
├── DataTree('orbitAndAttitude')
│       Dimensions:    (timeStamp: 7)
│       Coordinates:
│         * timeStamp  (timeStamp) datetime64[ns] 2010-10-15T21:01:32.370461 ... 2010...
│       Data variables:
│           yaw        (timeStamp) float64 3.756 3.773 3.785 3.792 3.807 3.82 3.83
│           roll       (timeStamp) float64 -29.8 -29.8 -29.8 -29.8 -29.8 -29.8 -29.8
│           pitch      (timeStamp) float64 0.002605 0.002862 ... -0.001594 -0.001443
│           xPosition  (timeStamp) float64 -5.072e+06 -5.076e+06 ... -5.087e+06
│           yPosition  (timeStamp) float64 4.643e+06 4.676e+06 ... 4.799e+06 4.828e+06
│           zPosition  (timeStamp) float64 2.033e+06 1.944e+06 ... 1.584e+06 1.494e+06
│           xVelocity  (timeStamp) float64 -425.7 -352.1 -278.6 ... -131.8 -58.51 14.65
│           yVelocity  (timeStamp) float64 2.642e+03 2.58e+03 ... 2.324e+03 2.259e+03
│           zVelocity  (timeStamp) float64 -7.063e+03 -7.09e+03 ... -7.207e+03
│       Attributes:
│           attitudeDataSource:      Downlink
│           attitudeOffsetsApplied:  true
│           Description:             Attitude Information Data Store. Orbit Informati...
├── DataTree('geolocationGrid')
│       Dimensions:    (line: 11, pixel: 11)
│       Coordinates:
│         * line       (line) int64 0 1007 2015 3023 4031 5039 6046 7054 8062 9070 10078
│         * pixel      (pixel) int64 0 1043 2086 3129 4172 ... 6258 7301 8344 9387 10431
│       Data variables:
│           latitude   (line, pixel) float64 17.97 17.89 17.8 ... 12.77 12.67 12.57
│           longitude  (line, pixel) float64 130.4 130.9 131.4 ... 133.3 133.8 134.3
│           height     (line, pixel) float64 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0
│       Attributes: (12/13)
│           productFormat:                               GeoTIFF
│           outputMediaInterleaving:                     BSQ
│           rasterAttributes_dataType:                   Magnitude Detected
│           rasterAttributes_bitsPerSample_dataStream:   Magnitude
│           rasterAttributes_bitsPerSample_value:        16
│           rasterAttributes_numberOfSamplesPerLine:     10432
│           ...                                          ...
│           rasterAttributes_sampledPixelSpacing_units:  m
│           rasterAttributes_sampledPixelSpacing_value:  50.0
│           rasterAttributes_sampledLineSpacing_units:   m
│           rasterAttributes_sampledLineSpacing_value:   50.0
│           rasterAttributes_lineTimeOrdering:           Increasing
│           rasterAttributes_pixelTimeOrdering:          Decreasing
├── DataTree('imageGenerationParameters')
│   ├── DataTree('doppler')
│   │   ├── DataTree('dopplerCentroid')
│   │   │       Dimensions:                          (timeOfDopplerCentroidEstimate: 5,
│   │   │                                             n-Coefficients: 5)
│   │   │       Coordinates:
│   │   │         * timeOfDopplerCentroidEstimate    (timeOfDopplerCentroidEstimate) datetime64[ns] ...
│   │   │         * n-Coefficients                   (n-Coefficients) int64 0 1 2 3 4
│   │   │       Data variables:
│   │   │           dopplerAmbiguity                 (timeOfDopplerCentroidEstimate) int64 0 ...
│   │   │           dopplerAmbiguityConfidence       (timeOfDopplerCentroidEstimate) float64 ...
│   │   │           dopplerCentroidReferenceTime     (timeOfDopplerCentroidEstimate) float64 ...
│   │   │           dopplerCentroidPolynomialPeriod  (timeOfDopplerCentroidEstimate) float64 ...
│   │   │           dopplerCentroidCoefficients      (timeOfDopplerCentroidEstimate, n-Coefficients) float64 ...
│   │   │           dopplerCentroidConfidence        (timeOfDopplerCentroidEstimate) float64 ...
│   │   │       Attributes:
│   │   │           Description:  Doppler Centroid Data Store
│   │   └── DataTree('dopplerRateValues')
│   │           Dimensions:                   (dopplerRateReferenceTime: 1,
│   │                                          n-RateValuesCoefficients: 3)
│   │           Coordinates:
│   │             * dopplerRateReferenceTime  (dopplerRateReferenceTime) float64 0.005568
│   │             * n-RateValuesCoefficients  (n-RateValuesCoefficients) int64 0 1 2
│   │           Data variables:
│   │               dopplerRateValues         (dopplerRateReferenceTime, n-RateValuesCoefficients) float64 ...
│   │           Attributes:
│   │               Description:  Doppler Rate Values Data Store.
│   └── DataTree('chirp')
│           Dimensions:                  (pole: 1, n-amplitudeCoefficients: 4,
│                                         n-phaseCoefficients: 4)
│           Coordinates:
│             * pole                     (pole) <U2 'VV'
│             * n-amplitudeCoefficients  (n-amplitudeCoefficients) int64 0 1 2 3
│             * n-phaseCoefficients      (n-phaseCoefficients) int64 0 1 2 3
│           Data variables:
│               replicaQualityValid      (pole) <U4 'true'
│               crossCorrelationWidth    (pole) float64 1.033
│               sideLobeLevel            (pole) float64 -13.28
│               integratedSideLobeRatio  (pole) float64 -9.988
│               crossCorrelationPeakLoc  (pole) float64 38.2
│               chirpPower               (pole) float64 63.78
│               amplitudeCoefficients    (pole, n-amplitudeCoefficients) float64 1.0 ... ...
│               phaseCoefficients        (pole, n-phaseCoefficients) float64 0.3395 ... -...
│           Attributes:
│               VV_wing:      Combined
│               VV_pulse:     11.58
│               Description:  Chirp Quality Data Store
├── DataTree('radarParameters')
│       Dimensions:                         (beam: 4, pole: 1, NbOfNoiseLevelValues: 99)
│       Coordinates:
│         * beam                            (beam) <U3 'W1' 'W2' 'W30' 'S7'
│         * pole                            (pole) <U2 'VV'
│       Dimensions without coordinates: NbOfNoiseLevelValues
│       Data variables:
│           pulsesReceivedPerDwell          (beam) int64 58 58 58 58
│           numberOfPulseIntervalsPerDwell  (beam) int64 65 66 65 67
│           rank                            (beam) int64 7 8 7 9
│           settableGain                    (beam, pole) float64 -1.0 -1.0 -1.0 -1.0
│           pulseRepetitionFrequency        (beam) float64 1.283e+03 ... 1.297e+03
│           samplesPerEchoLine              (beam) int64 6768 7920 7944 7320
│           noiseLevelValues_BetaNought     (NbOfNoiseLevelValues) float64 -27.16 ......
│           noiseLevelValues_SigmaNought    (NbOfNoiseLevelValues) float64 -28.36 ......
│           noiseLevelValues_Gamma          (NbOfNoiseLevelValues) float64 -26.5 ... ...
│       Attributes: (12/20)
│           acquisitionType:             ScanSAR Wide
│           beams:                       ['W1', 'W2', 'W30', 'S7']
│           polarizations:               ['VV']
│           pulses:                      11.58
│           radarCenterFrequency_units:  Hz
│           radarCenterFrequency:        5404999242.769673
│           ...                          ...
│           adcSamplingRate_units:       Hz
│           adcSamplingRate:             12667968.75
│           yawSteeringFlag:             YawSteeringOn
│           geodeticFlag:                Off-Geocentric
│           rawBitsPerSample:            4
│           Description:                 Radar Parameters Data Store. Information des...
└── DataTree('lut')
        Dimensions:   (pixels: 10432)
        Coordinates:
          * pixels    (pixels) int64 0 1 2 3 4 5 ... 10426 10427 10428 10429 10430 10431
        Data variables:
            lutBeta   (pixels) float64 1.358e+07 1.358e+07 ... 1.358e+07 1.358e+07
            lutGamma  (pixels) float64 1.164e+07 1.164e+07 ... 3.814e+07 3.815e+07
            lutSigma  (pixels) float64 1.789e+07 1.789e+07 ... 4.049e+07 4.05e+07
        Attributes:
            Description:  RADARSAT Product LUT. (c) COPYRIGHT MacDonald Dettwiler and...
```
