sarkit-convert 0.2.0__py3-none-any.whl → 0.3.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- sarkit_convert/_utils.py +15 -18
- sarkit_convert/_version.py +1 -1
- sarkit_convert/cosmo.py +172 -178
- sarkit_convert/create_arp_poly.py +1 -1
- sarkit_convert/iceye.py +196 -291
- sarkit_convert/sentinel.py +284 -326
- sarkit_convert/terrasar.py +179 -179
- {sarkit_convert-0.2.0.dist-info → sarkit_convert-0.3.0.dist-info}/METADATA +20 -10
- sarkit_convert-0.3.0.dist-info/RECORD +14 -0
- {sarkit_convert-0.2.0.dist-info → sarkit_convert-0.3.0.dist-info}/WHEEL +1 -1
- sarkit_convert-0.2.0.dist-info/RECORD +0 -14
- {sarkit_convert-0.2.0.dist-info → sarkit_convert-0.3.0.dist-info}/entry_points.txt +0 -0
- {sarkit_convert-0.2.0.dist-info → sarkit_convert-0.3.0.dist-info}/licenses/LICENSE +0 -0
sarkit_convert/terrasar.py
CHANGED
|
@@ -19,7 +19,7 @@ import datetime
|
|
|
19
19
|
import pathlib
|
|
20
20
|
|
|
21
21
|
import dateutil.parser
|
|
22
|
-
import lxml.
|
|
22
|
+
import lxml.etree
|
|
23
23
|
import numpy as np
|
|
24
24
|
import numpy.linalg as npl
|
|
25
25
|
import numpy.polynomial.polynomial as npp
|
|
@@ -27,7 +27,6 @@ import sarkit.sicd as sksicd
|
|
|
27
27
|
import sarkit.verification
|
|
28
28
|
import sarkit.wgs84
|
|
29
29
|
import scipy.constants
|
|
30
|
-
from lxml import etree
|
|
31
30
|
|
|
32
31
|
from sarkit_convert import __version__
|
|
33
32
|
from sarkit_convert import _utils as utils
|
|
@@ -59,10 +58,6 @@ def _parse_to_naive(timestamp_str):
|
|
|
59
58
|
return dateutil.parser.parse(timestamp_str).replace(tzinfo=None)
|
|
60
59
|
|
|
61
60
|
|
|
62
|
-
def _naive_to_sicd_str(timestamp):
|
|
63
|
-
return timestamp.replace(tzinfo=None).isoformat() + "Z"
|
|
64
|
-
|
|
65
|
-
|
|
66
61
|
def _boolstr_to_bool(text):
|
|
67
62
|
return text in ("1", "true")
|
|
68
63
|
|
|
@@ -603,44 +598,45 @@ def cosar_to_sicd(
|
|
|
603
598
|
antenna_array_gain[0, 0] = 0.0
|
|
604
599
|
|
|
605
600
|
# Build XML
|
|
606
|
-
|
|
607
|
-
|
|
601
|
+
sicd_xml_obj = lxml.etree.Element(
|
|
602
|
+
f"{{{NSMAP['sicd']}}}SICD", nsmap={None: NSMAP["sicd"]}
|
|
608
603
|
)
|
|
609
|
-
sicd_xml_obj = sicd.SICD()
|
|
610
604
|
sicd_ew = sksicd.ElementWrapper(sicd_xml_obj)
|
|
611
605
|
|
|
612
|
-
sicd_ew["CollectionInfo"] =
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
606
|
+
sicd_ew["CollectionInfo"] = {
|
|
607
|
+
"CollectorName": collector_name,
|
|
608
|
+
"CoreName": core_name,
|
|
609
|
+
"CollectType": "MONOSTATIC",
|
|
610
|
+
"RadarMode": {
|
|
611
|
+
"ModeType": radar_mode_type,
|
|
612
|
+
"ModeID": radar_mode_id,
|
|
613
|
+
},
|
|
614
|
+
"Classification": classification,
|
|
615
|
+
}
|
|
616
|
+
sicd_ew["ImageCreation"] = {
|
|
617
|
+
"Application": creation_application,
|
|
618
|
+
"DateTime": creation_time,
|
|
619
|
+
}
|
|
620
|
+
sicd_ew["ImageData"] = {
|
|
621
|
+
"PixelType": COSAR_PIXEL_TYPE,
|
|
622
|
+
"NumRows": num_rows,
|
|
623
|
+
"NumCols": num_cols,
|
|
624
|
+
"FirstRow": first_row,
|
|
625
|
+
"FirstCol": first_col,
|
|
626
|
+
"FullImage": {
|
|
627
|
+
"NumRows": num_rows,
|
|
628
|
+
"NumCols": num_cols,
|
|
629
|
+
},
|
|
630
|
+
"SCPPixel": scp_pixel,
|
|
631
|
+
}
|
|
632
|
+
|
|
633
|
+
sicd_ew["GeoData"] = {
|
|
634
|
+
"EarthModel": "WGS_84",
|
|
635
|
+
"SCP": {
|
|
636
|
+
"ECF": scp_ecf,
|
|
637
|
+
"LLH": scp_llh,
|
|
638
|
+
},
|
|
639
|
+
}
|
|
644
640
|
|
|
645
641
|
dc_sgn = np.sign(-doppler_rate_poly[0, 0])
|
|
646
642
|
col_deltakcoa_poly = (
|
|
@@ -665,44 +661,41 @@ def cosar_to_sicd(
|
|
|
665
661
|
col_window_name = proc_param.findtext("./azimuthWindowID")
|
|
666
662
|
col_window_coeff = float(proc_param.findtext("./azimuthWindowCoefficient"))
|
|
667
663
|
|
|
668
|
-
sicd_ew["Grid"] =
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
sicd_ew["Grid"]["TimeCOAPoly"] = time_coa_poly
|
|
704
|
-
sicd_ew["Grid"]["Row"]["DeltaKCOAPoly"] = [[0]]
|
|
705
|
-
sicd_ew["Grid"]["Col"]["DeltaKCOAPoly"] = col_deltakcoa_poly
|
|
664
|
+
sicd_ew["Grid"] = {
|
|
665
|
+
"ImagePlane": "SLANT",
|
|
666
|
+
"Type": "RGZERO",
|
|
667
|
+
"TimeCOAPoly": time_coa_poly,
|
|
668
|
+
"Row": {
|
|
669
|
+
"UVectECF": u_row,
|
|
670
|
+
"SS": spacings[0],
|
|
671
|
+
"ImpRespWid": row_wid,
|
|
672
|
+
"Sgn": -1,
|
|
673
|
+
"ImpRespBW": row_bw,
|
|
674
|
+
"KCtr": center_frequency / (scipy.constants.speed_of_light / 2),
|
|
675
|
+
"DeltaK1": -row_bw / 2,
|
|
676
|
+
"DeltaK2": row_bw / 2,
|
|
677
|
+
"DeltaKCOAPoly": [[0.0]],
|
|
678
|
+
"WgtType": {
|
|
679
|
+
"WindowName": row_window_name,
|
|
680
|
+
"Parameter": [("COEFFICIENT", str(row_window_coeff))],
|
|
681
|
+
},
|
|
682
|
+
},
|
|
683
|
+
"Col": {
|
|
684
|
+
"UVectECF": u_col,
|
|
685
|
+
"SS": spacings[1],
|
|
686
|
+
"ImpRespWid": col_wid,
|
|
687
|
+
"Sgn": -1,
|
|
688
|
+
"ImpRespBW": col_bw,
|
|
689
|
+
"KCtr": 0.0,
|
|
690
|
+
"DeltaK1": dk1,
|
|
691
|
+
"DeltaK2": dk2,
|
|
692
|
+
"DeltaKCOAPoly": col_deltakcoa_poly,
|
|
693
|
+
"WgtType": {
|
|
694
|
+
"WindowName": col_window_name,
|
|
695
|
+
"Parameter": [("COEFFICIENT", str(col_window_coeff))],
|
|
696
|
+
},
|
|
697
|
+
},
|
|
698
|
+
}
|
|
706
699
|
rcs_row_sf = None
|
|
707
700
|
rcs_col_sf = None
|
|
708
701
|
if row_window_name == "Hamming":
|
|
@@ -720,84 +713,104 @@ def cosar_to_sicd(
|
|
|
720
713
|
sicd_ew["Grid"]["Col"]["ImpRespWid"] = col_wid
|
|
721
714
|
rcs_col_sf = 1 + np.var(wgts) / np.mean(wgts) ** 2
|
|
722
715
|
|
|
723
|
-
sicd_ew["Timeline"] =
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
{
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
716
|
+
sicd_ew["Timeline"] = {
|
|
717
|
+
"CollectStart": collection_start_time,
|
|
718
|
+
"CollectDuration": collection_duration,
|
|
719
|
+
"IPP": {
|
|
720
|
+
"@size": 1,
|
|
721
|
+
"Set": [
|
|
722
|
+
{
|
|
723
|
+
"@index": 1,
|
|
724
|
+
"TStart": 0,
|
|
725
|
+
"TEnd": num_pulses / prf,
|
|
726
|
+
"IPPStart": 0,
|
|
727
|
+
"IPPEnd": num_pulses - 1,
|
|
728
|
+
"IPPPoly": [0, prf],
|
|
729
|
+
}
|
|
730
|
+
],
|
|
731
|
+
},
|
|
732
|
+
}
|
|
739
733
|
|
|
740
734
|
sicd_ew["Position"]["ARPPoly"] = apc_poly
|
|
741
735
|
|
|
742
|
-
|
|
743
|
-
{"size": str(len(tx_rcv_pols))},
|
|
744
|
-
)
|
|
736
|
+
chan_parameters = []
|
|
745
737
|
for ndx, tx_rcv_pol in enumerate(tx_rcv_pols):
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
738
|
+
chan_parameters.append(
|
|
739
|
+
{
|
|
740
|
+
"@index": ndx + 1,
|
|
741
|
+
"TxRcvPolarization": tx_rcv_pol,
|
|
742
|
+
}
|
|
750
743
|
)
|
|
751
744
|
|
|
752
|
-
sicd_ew["RadarCollection"] =
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
745
|
+
sicd_ew["RadarCollection"] = {
|
|
746
|
+
"TxFrequency": {
|
|
747
|
+
"Min": tx_freq_min,
|
|
748
|
+
"Max": tx_freq_max,
|
|
749
|
+
},
|
|
750
|
+
"Waveform": {
|
|
751
|
+
"@size": 1,
|
|
752
|
+
"WFParameters": [
|
|
753
|
+
{
|
|
754
|
+
"@index": 1,
|
|
755
|
+
"TxPulseLength": tx_pulse_length,
|
|
756
|
+
"TxRFBandwidth": tx_rf_bw,
|
|
757
|
+
"TxFreqStart": tx_freq_start,
|
|
758
|
+
"TxFMRate": tx_fm_rate,
|
|
759
|
+
"RcvWindowLength": rcv_window_length,
|
|
760
|
+
"ADCSampleRate": adc_sample_rate,
|
|
761
|
+
}
|
|
762
|
+
],
|
|
763
|
+
},
|
|
764
|
+
"TxPolarization": tx_polarization,
|
|
765
|
+
"RcvChannels": {
|
|
766
|
+
"@size": len(tx_rcv_pols),
|
|
767
|
+
"ChanParameters": chan_parameters,
|
|
768
|
+
},
|
|
769
|
+
}
|
|
769
770
|
if len(tx_polarizations) > 1:
|
|
770
771
|
sicd_ew["RadarCollection"]["TxPolarization"] = "SEQUENCE"
|
|
771
|
-
|
|
772
|
+
tx_steps = []
|
|
772
773
|
for ndx, tx_pol in enumerate(tx_polarizations):
|
|
773
|
-
|
|
774
|
-
|
|
774
|
+
tx_steps.append(
|
|
775
|
+
{
|
|
776
|
+
"@index": ndx + 1,
|
|
777
|
+
"TxPolarization": tx_pol,
|
|
778
|
+
}
|
|
775
779
|
)
|
|
776
|
-
|
|
780
|
+
sicd_ew["RadarCollection"]["TxSequence"] = {
|
|
781
|
+
"@size": len(tx_polarizations),
|
|
782
|
+
"TxStep": tx_steps,
|
|
783
|
+
}
|
|
777
784
|
|
|
778
785
|
now = (
|
|
779
786
|
datetime.datetime.now(datetime.timezone.utc)
|
|
780
787
|
.isoformat(timespec="microseconds")
|
|
781
788
|
.replace("+00:00", "Z")
|
|
782
789
|
)
|
|
783
|
-
sicd_ew["ImageFormation"] =
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
790
|
+
sicd_ew["ImageFormation"] = {
|
|
791
|
+
"RcvChanProc": {
|
|
792
|
+
"NumChanProc": 1,
|
|
793
|
+
"ChanIndex": [chan_index],
|
|
794
|
+
},
|
|
795
|
+
"TxRcvPolarizationProc": tx_rcv_polarization,
|
|
796
|
+
"TStartProc": 0,
|
|
797
|
+
"TEndProc": collection_duration,
|
|
798
|
+
"TxFrequencyProc": {
|
|
799
|
+
"MinProc": tx_freq_min,
|
|
800
|
+
"MaxProc": tx_freq_max,
|
|
801
|
+
},
|
|
802
|
+
"ImageFormAlgo": "RMA",
|
|
803
|
+
"STBeamComp": st_beam_comp,
|
|
804
|
+
"ImageBeamComp": "SV",
|
|
805
|
+
"AzAutofocus": "NO",
|
|
806
|
+
"RgAutofocus": "NO",
|
|
807
|
+
"Processing": [
|
|
808
|
+
{
|
|
809
|
+
"Type": f"sarkit-convert {__version__} @ {now}",
|
|
810
|
+
"Applied": True,
|
|
811
|
+
},
|
|
812
|
+
],
|
|
813
|
+
}
|
|
801
814
|
|
|
802
815
|
sicd_ew["Antenna"]["TwoWay"]["XAxisPoly"] = ant_x_dir_poly
|
|
803
816
|
sicd_ew["Antenna"]["TwoWay"]["YAxisPoly"] = ant_y_dir_poly
|
|
@@ -809,20 +822,17 @@ def cosar_to_sicd(
|
|
|
809
822
|
dtype=float, shape=(1, 1)
|
|
810
823
|
)
|
|
811
824
|
|
|
812
|
-
sicd_ew["RMA"] =
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
sicd_ew["RMA"]["INCA"]["TimeCAPoly"] = time_ca_poly
|
|
824
|
-
sicd_ew["RMA"]["INCA"]["DRateSFPoly"] = drsf_poly
|
|
825
|
-
sicd_ew["RMA"]["INCA"]["DopCentroidPoly"] = doppler_centroid_poly
|
|
825
|
+
sicd_ew["RMA"] = {
|
|
826
|
+
"RMAlgoType": "OMEGA_K",
|
|
827
|
+
"ImageType": "INCA",
|
|
828
|
+
"INCA": {
|
|
829
|
+
"TimeCAPoly": time_ca_poly,
|
|
830
|
+
"R_CA_SCP": scp_rca,
|
|
831
|
+
"FreqZero": center_frequency,
|
|
832
|
+
"DRateSFPoly": drsf_poly,
|
|
833
|
+
"DopCentroidPoly": doppler_centroid_poly,
|
|
834
|
+
},
|
|
835
|
+
}
|
|
826
836
|
|
|
827
837
|
sicd_ew["SCPCOA"] = sksicd.compute_scp_coa(sicd_xml_obj.getroottree())
|
|
828
838
|
|
|
@@ -849,28 +859,19 @@ def cosar_to_sicd(
|
|
|
849
859
|
1e-2,
|
|
850
860
|
)
|
|
851
861
|
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
radiometric.find("./{*}SigmaZeroSFPoly"), sigmazero_poly
|
|
863
|
-
)
|
|
864
|
-
sksicd.Poly2dType().set_elem(radiometric.find("./{*}BetaZeroSFPoly"), betazero_poly)
|
|
865
|
-
sksicd.Poly2dType().set_elem(
|
|
866
|
-
radiometric.find("./{*}GammaZeroSFPoly"), gammazero_poly
|
|
867
|
-
)
|
|
862
|
+
sicd_ew["Radiometric"] = {
|
|
863
|
+
"NoiseLevel": {
|
|
864
|
+
"NoiseLevelType": "ABSOLUTE",
|
|
865
|
+
"NoisePoly": noise_poly,
|
|
866
|
+
},
|
|
867
|
+
"SigmaZeroSFPoly": sigmazero_poly,
|
|
868
|
+
"BetaZeroSFPoly": betazero_poly,
|
|
869
|
+
"GammaZeroSFPoly": gammazero_poly,
|
|
870
|
+
}
|
|
871
|
+
|
|
868
872
|
if rcs_row_sf and rcs_col_sf:
|
|
869
873
|
rcssf_poly = betazero_poly * (rcs_row_sf * rcs_col_sf / (row_bw * col_bw))
|
|
870
|
-
|
|
871
|
-
sksicd.Poly2dType().set_elem(radiometric.find("./{*}RCSSFPoly"), rcssf_poly)
|
|
872
|
-
|
|
873
|
-
sicd_xml_obj.find("./{*}Antenna").addprevious(radiometric)
|
|
874
|
+
sicd_ew["Radiometric"]["RCSSFPoly"] = rcssf_poly
|
|
874
875
|
|
|
875
876
|
# Add Geodata Corners
|
|
876
877
|
sicd_xmltree = sicd_xml_obj.getroottree()
|
|
@@ -890,13 +891,12 @@ def cosar_to_sicd(
|
|
|
890
891
|
sicd_ew["GeoData"]["ImageCorners"] = icp_llh[:, :2]
|
|
891
892
|
|
|
892
893
|
# Add RNIIRS
|
|
893
|
-
|
|
894
|
-
inf_density, pred_rniirs = utils.get_rniirs_estimate(xml_helper)
|
|
894
|
+
inf_density, pred_rniirs = utils.get_rniirs_estimate(sicd_ew)
|
|
895
895
|
sicd_ew["CollectionInfo"].add(
|
|
896
896
|
"Parameter", ("INFORMATION_DENSITY", f"{inf_density:.2g}")
|
|
897
897
|
)
|
|
898
898
|
sicd_ew["CollectionInfo"].add(
|
|
899
|
-
"Parameter", ("PREDICTED_RNIIRS", f"{pred_rniirs:.
|
|
899
|
+
"Parameter", ("PREDICTED_RNIIRS", f"{pred_rniirs:.1f}")
|
|
900
900
|
)
|
|
901
901
|
|
|
902
902
|
# Validate XML
|
|
@@ -961,7 +961,7 @@ def main(args=None):
|
|
|
961
961
|
if not config.input_xml_file.is_file():
|
|
962
962
|
raise ValueError(f"Input XML file {str(config.input_xml_file)} is not a file")
|
|
963
963
|
|
|
964
|
-
tsx_xml = etree.parse(config.input_xml_file).getroot()
|
|
964
|
+
tsx_xml = lxml.etree.parse(config.input_xml_file).getroot()
|
|
965
965
|
|
|
966
966
|
images = dict()
|
|
967
967
|
img_ndx = 1
|
|
@@ -1,24 +1,27 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: sarkit-convert
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.3.0
|
|
4
4
|
Summary: Python library for converting SAR data to standard formats.
|
|
5
5
|
Author-Email: Valkyrie Systems Corporation <info@govsco.com>
|
|
6
|
-
License: MIT
|
|
6
|
+
License-Expression: MIT
|
|
7
|
+
License-File: LICENSE
|
|
7
8
|
Classifier: Development Status :: 2 - Pre-Alpha
|
|
8
9
|
Classifier: Intended Audience :: Science/Research
|
|
9
|
-
Classifier: License :: OSI Approved :: MIT License
|
|
10
10
|
Classifier: Topic :: Scientific/Engineering
|
|
11
11
|
Classifier: Programming Language :: Python
|
|
12
12
|
Classifier: Programming Language :: Python :: 3
|
|
13
|
-
Classifier: Programming Language :: Python :: 3.11
|
|
14
13
|
Classifier: Programming Language :: Python :: 3.12
|
|
15
14
|
Classifier: Programming Language :: Python :: 3.13
|
|
16
|
-
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
16
|
+
Project-URL: Repository, https://github.com/ValkyrieSystems/sarkit-convert.git
|
|
17
|
+
Project-URL: Bug Tracker, https://github.com/ValkyrieSystems/sarkit-convert/issues
|
|
18
|
+
Project-URL: Changelog, https://github.com/ValkyrieSystems/sarkit-convert/blob/main/CHANGELOG.md
|
|
19
|
+
Requires-Python: >=3.12
|
|
17
20
|
Requires-Dist: lxml>=5.1.0
|
|
18
|
-
Requires-Dist: numpy>=
|
|
21
|
+
Requires-Dist: numpy>=2.0.0
|
|
19
22
|
Requires-Dist: pyproj>=3.7.2
|
|
20
23
|
Requires-Dist: sarkit>=1.3.0
|
|
21
|
-
Requires-Dist: scipy>=1.
|
|
24
|
+
Requires-Dist: scipy>=1.13.0
|
|
22
25
|
Provides-Extra: iceye
|
|
23
26
|
Requires-Dist: h5py>=3.12.1; extra == "iceye"
|
|
24
27
|
Requires-Dist: python-dateutil>=2.9.0; extra == "iceye"
|
|
@@ -26,12 +29,12 @@ Provides-Extra: cosmo
|
|
|
26
29
|
Requires-Dist: astropy>=6.0.0; extra == "cosmo"
|
|
27
30
|
Requires-Dist: h5py>=3.12.1; extra == "cosmo"
|
|
28
31
|
Requires-Dist: python-dateutil>=2.9.0; extra == "cosmo"
|
|
29
|
-
Requires-Dist: shapely>=2.0.
|
|
32
|
+
Requires-Dist: shapely>=2.0.6; extra == "cosmo"
|
|
30
33
|
Provides-Extra: terrasar
|
|
31
34
|
Requires-Dist: python-dateutil>=2.9.0; extra == "terrasar"
|
|
32
35
|
Provides-Extra: sentinel
|
|
33
36
|
Requires-Dist: python-dateutil>=2.9.0; extra == "sentinel"
|
|
34
|
-
Requires-Dist: tifffile>=
|
|
37
|
+
Requires-Dist: tifffile>=2024.7.2; extra == "sentinel"
|
|
35
38
|
Provides-Extra: all
|
|
36
39
|
Requires-Dist: sarkit-convert[iceye]; extra == "all"
|
|
37
40
|
Requires-Dist: sarkit-convert[cosmo]; extra == "all"
|
|
@@ -43,6 +46,13 @@ Description-Content-Type: text/markdown
|
|
|
43
46
|
|
|
44
47
|
<img src="https://raw.githubusercontent.com/ValkyrieSystems/sarkit/main/docs/source/_static/sarkit_logo.png" width=200>
|
|
45
48
|
|
|
49
|
+
[](https://pypi.org/project/sarkit-convert/)
|
|
50
|
+

|
|
51
|
+
[](./LICENSE)
|
|
52
|
+
[](https://scientific-python.org/specs/spec-0000/)
|
|
53
|
+
<br>
|
|
54
|
+
[](https://github.com/ValkyrieSystems/sarkit-convert/actions/workflows/test.yml)
|
|
55
|
+
|
|
46
56
|
</div>
|
|
47
57
|
|
|
48
58
|
**sarkit-convert** is a Python library for converting SAR data to standard formats.
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
sarkit_convert-0.3.0.dist-info/METADATA,sha256=0DL6Jpvg0w-3AaJVSk3iRk4Oj_LkM2gUJRjXej0_emc,3047
|
|
2
|
+
sarkit_convert-0.3.0.dist-info/WHEEL,sha256=Wb0ASbVj8JvWHpOiIpPi7ucfIgJeCi__PzivviEAQFc,90
|
|
3
|
+
sarkit_convert-0.3.0.dist-info/entry_points.txt,sha256=6OYgBcLyFCUgeqLgnvMyOJxPCWzgy7se4rLPKtNonMs,34
|
|
4
|
+
sarkit_convert-0.3.0.dist-info/licenses/LICENSE,sha256=H0HxqjXuxJwqg17L2F5jjbrWm5IV-R_FNLbzu-eJEc0,1086
|
|
5
|
+
sarkit_convert/__init__.py,sha256=l_h1XRjbcNc4Hg66LvcjKzjk4lVlwaFLbNizvQtysgo,295
|
|
6
|
+
sarkit_convert/_utils.py,sha256=mZlMqxXDR0we4hAabGpRHeGvVZLnoB6uvjYO-QiuIi0,9233
|
|
7
|
+
sarkit_convert/_version.py,sha256=gTggO06fb2c9XKEwlQYUSPlUfy82yVlM9pzLMOUqVcY,21
|
|
8
|
+
sarkit_convert/cosmo.py,sha256=JUirYDfrYm4hUDa0ubyL4bOuvW18-MQKOCAADNpWgWU,34531
|
|
9
|
+
sarkit_convert/create_arp_poly.py,sha256=ApntYmMts8jZ7gSfDMDZ64DehvFUdXxIQf-XuBO41fQ,5987
|
|
10
|
+
sarkit_convert/iceye.py,sha256=F5bIh-knTRHHxGksJLOcdqn14PO9OQUlpCMJ7FqyJqQ,27115
|
|
11
|
+
sarkit_convert/sentinel.py,sha256=Ru1jVG5g4VLfNsy5o8uhoPdBvyi6jk8tH6XcE4recXU,60693
|
|
12
|
+
sarkit_convert/sidd_metadata.py,sha256=lVffYbkvGWZ6hQl_PcQfR8FEMcneCGsp5n6xR5ZvHIk,6927
|
|
13
|
+
sarkit_convert/terrasar.py,sha256=iFvZtspMLiPI59rWCqgoAyzBqTsmR0d-RbcxQkh5Lho,34794
|
|
14
|
+
sarkit_convert-0.3.0.dist-info/RECORD,,
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
sarkit_convert-0.2.0.dist-info/METADATA,sha256=SiqX7I3vnXIuaZMPA7yXtV8PeKo2X1li5k98TozI0jM,2185
|
|
2
|
-
sarkit_convert-0.2.0.dist-info/WHEEL,sha256=tsUv_t7BDeJeRHaSrczbGeuK-TtDpGsWi_JfpzD255I,90
|
|
3
|
-
sarkit_convert-0.2.0.dist-info/entry_points.txt,sha256=6OYgBcLyFCUgeqLgnvMyOJxPCWzgy7se4rLPKtNonMs,34
|
|
4
|
-
sarkit_convert-0.2.0.dist-info/licenses/LICENSE,sha256=H0HxqjXuxJwqg17L2F5jjbrWm5IV-R_FNLbzu-eJEc0,1086
|
|
5
|
-
sarkit_convert/__init__.py,sha256=l_h1XRjbcNc4Hg66LvcjKzjk4lVlwaFLbNizvQtysgo,295
|
|
6
|
-
sarkit_convert/_utils.py,sha256=bzFGIBE870QAMfEhm5CYAP4PUlY0KM6V3paTng_rr_8,9407
|
|
7
|
-
sarkit_convert/_version.py,sha256=clN3TnyYyt5T_wUJLVBmutS2kYLLBET4JFB2QXnRm2Q,21
|
|
8
|
-
sarkit_convert/cosmo.py,sha256=ttrN0f_pU2PmH3LL0DojWCxxVDAcCm8j6kWB2w82BIU,36374
|
|
9
|
-
sarkit_convert/create_arp_poly.py,sha256=dgbKYYKUarC7W1edbEeozy6O4Gg-u62LsV8v1mrC_hs,5983
|
|
10
|
-
sarkit_convert/iceye.py,sha256=LmOqEo2_BW7noo2I9QJbPMLn51c1tAaItUBomA62gy0,31108
|
|
11
|
-
sarkit_convert/sentinel.py,sha256=s7rrssfrJhLsV90HzKAzoxeYNXNKTru0qNvRNkEfoU8,63124
|
|
12
|
-
sarkit_convert/sidd_metadata.py,sha256=lVffYbkvGWZ6hQl_PcQfR8FEMcneCGsp5n6xR5ZvHIk,6927
|
|
13
|
-
sarkit_convert/terrasar.py,sha256=Rl7BfBt2ZTQ9sVlMWY-rgLp0RBoWwBT1PWymSCW8Xvk,36351
|
|
14
|
-
sarkit_convert-0.2.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|