@@ -272,13 +272,9 @@ def pansharpenKernel(image, pan, rgb=None, kernel=None):
272
272
bgr_mean = bgr .reduce ("mean" ).rename ("mean" )
273
273
# Compute the aggregate mean of the unsharpened bands and the pan band
274
274
mean_values = pani .addBands (bgr_mean ).reduceNeighborhood (ee .Reducer .mean (), kernel )
275
- gain = mean_values .select ("mean_mean" ).divide (
276
- mean_values .select ("{}_mean" .format (pan ))
277
- )
275
+ gain = mean_values .select ("mean_mean" ).divide (mean_values .select ("{}_mean" .format (pan )))
278
276
sharpen = bgr .divide (bgr_mean ).multiply (pani ).multiply (gain )
279
- return ee .Image (
280
- sharpen .copyProperties (source = image , properties = image .propertyNames ())
281
- )
277
+ return ee .Image (sharpen .copyProperties (source = image , properties = image .propertyNames ()))
282
278
283
279
284
280
def pansharpenIhsFusion (image , pan = None , rgb = None ):
@@ -338,9 +334,7 @@ def compute(i):
338
334
return ee .Image (ee .Algorithms .If (condition , compute (image ), image ))
339
335
340
336
@staticmethod
341
- def _rescale (
342
- image , bands = None , thermal_bands = None , original = "TOA" , to = "SR" , number = "all"
343
- ):
337
+ def _rescale (image , bands = None , thermal_bands = None , original = "TOA" , to = "SR" , number = "all" ):
344
338
"""Rescaling logic."""
345
339
if not bands :
346
340
bands = ["B1" , "B2" , "B3" , "B4" , "B5" , "B6" , "B7" ]
@@ -514,11 +508,7 @@ def toImage(img, band, args=None):
514
508
"""
515
509
if isinstance (band , str ):
516
510
# print('band:', band)
517
- if (
518
- (band .find ("." ) > - 1 )
519
- or (band .find (" " ) > - 1 )
520
- or (band .find ("{" ) > - 1 )
521
- ):
511
+ if (band .find ("." ) > - 1 ) or (band .find (" " ) > - 1 ) or (band .find ("{" ) > - 1 ):
522
512
# print('formatted:', format_str(band, args), '\n')
523
513
band = img .expression (format_str (band , args ), {"i" : img })
524
514
else :
@@ -558,9 +548,7 @@ def pointBetween(pointA, pointB):
558
548
return ee .Geometry .LineString ([pointA , pointB ]).centroid ().coordinates ()
559
549
560
550
def slopeBetween (pointA , pointB ):
561
- return ((y (pointA )).subtract (y (pointB ))).divide (
562
- (x (pointA )).subtract (x (pointB ))
563
- )
551
+ return ((y (pointA )).subtract (y (pointB ))).divide ((x (pointA )).subtract (x (pointB )))
564
552
565
553
def toLine (pointA , pointB ):
566
554
return ee .Geometry .LineString ([pointA , pointB ])
@@ -633,12 +621,8 @@ def viewAngles(img):
633
621
634
622
leftLine = toLine (corners ["upperLeft" ], corners ["lowerLeft" ])
635
623
rightLine = toLine (corners ["upperRight" ], corners ["lowerRight" ])
636
- leftDistance = ee .FeatureCollection (leftLine ).distance (
637
- maxDistanceToSceneEdge
638
- )
639
- rightDistance = ee .FeatureCollection (rightLine ).distance (
640
- maxDistanceToSceneEdge
641
- )
624
+ leftDistance = ee .FeatureCollection (leftLine ).distance (maxDistanceToSceneEdge )
625
+ rightDistance = ee .FeatureCollection (rightLine ).distance (maxDistanceToSceneEdge )
642
626
viewZenith = (
643
627
rightDistance .multiply (maxSatelliteZenith * 2 )
644
628
.divide (rightDistance .add (leftDistance ))
@@ -668,13 +652,9 @@ def solarPosition(img):
668
652
ee .Number (date .getRelative ("second" , "day" )).divide (secondsInHour ),
669
653
)
670
654
671
- img = set_name (
672
- img , "jdp" , date .getFraction ("year" ) # Julian Date Proportion
673
- )
655
+ img = set_name (img , "jdp" , date .getFraction ("year" )) # Julian Date Proportion
674
656
675
- img = set_name (
676
- img , "jdpr" , "i.jdp * 2 * {pi}" # Julian Date Proportion in Radians
677
- )
657
+ img = set_name (img , "jdpr" , "i.jdp * 2 * {pi}" ) # Julian Date Proportion in Radians
678
658
679
659
img = set_name (img , "meanSolarTime" , "i.hourGMT + i.longDeg / 15" )
680
660
@@ -686,9 +666,7 @@ def solarPosition(img):
686
666
+ "* 12 * 60 / {pi}" ,
687
667
)
688
668
689
- img = set_name (
690
- img , "trueSolarTime" , "i.meanSolarTime + i.localSolarDiff / 60 - 12"
691
- )
669
+ img = set_name (img , "trueSolarTime" , "i.meanSolarTime + i.localSolarDiff / 60 - 12" )
692
670
693
671
img = set_name (img , "angleHour" , "i.trueSolarTime * 15 * {pi} / 180" )
694
672
@@ -713,9 +691,7 @@ def solarPosition(img):
713
691
img = set_name (
714
692
img ,
715
693
"sinSunAzSW" ,
716
- toImage (img , "cos(i.delta) * sin(i.angleHour) / sin(i.sunZen)" ).clamp (
717
- - 1 , 1
718
- ),
694
+ toImage (img , "cos(i.delta) * sin(i.angleHour) / sin(i.sunZen)" ).clamp (- 1 , 1 ),
719
695
)
720
696
721
697
img = set_name (
@@ -727,9 +703,7 @@ def solarPosition(img):
727
703
728
704
img = set_name (img , "sunAzSW" , "asin(i.sinSunAzSW)" )
729
705
730
- img = setIf (
731
- img , "sunAzSW" , "i.cosSunAzSW <= 0" , "{pi} - i.sunAzSW" , "i.sunAzSW"
732
- )
706
+ img = setIf (img , "sunAzSW" , "i.cosSunAzSW <= 0" , "{pi} - i.sunAzSW" , "i.sunAzSW" )
733
707
734
708
img = setIf (
735
709
img ,
@@ -741,9 +715,7 @@ def solarPosition(img):
741
715
742
716
img = set_name (img , "sunAz" , "i.sunAzSW + {pi}" )
743
717
744
- img = setIf (
745
- img , "sunAz" , "i.sunAz > 2 * {pi}" , "i.sunAz - 2 * {pi}" , "i.sunAz"
746
- )
718
+ img = setIf (img , "sunAz" , "i.sunAz > 2 * {pi}" , "i.sunAz - 2 * {pi}" , "i.sunAz" )
747
719
748
720
return img
749
721
@@ -807,9 +779,7 @@ def rossThick(img, bandName, sunZen, viewZen, relativeSunViewAz):
807
779
"relativeSunViewAz" : relativeSunViewAz ,
808
780
}
809
781
810
- img = cosPhaseAngle (
811
- img , "cosPhaseAngle" , sunZen , viewZen , relativeSunViewAz
812
- )
782
+ img = cosPhaseAngle (img , "cosPhaseAngle" , sunZen , viewZen , relativeSunViewAz )
813
783
img = set_name (img , "phaseAngle" , "acos(i.cosPhaseAngle)" )
814
784
815
785
img = set_name (
@@ -871,9 +841,7 @@ def liThin(img, bandName, sunZen, viewZen, relativeSunViewAz):
871
841
).clamp (- 1 , 1 ),
872
842
)
873
843
img = set_name (img , "t" , "acos(i.cosT)" )
874
- img = set_name (
875
- img , "overlap" , "(1/{pi}) * (i.t - sin(i.t) * i.cosT) * (i.temp)"
876
- )
844
+ img = set_name (img , "overlap" , "(1/{pi}) * (i.t - sin(i.t) * i.cosT) * (i.temp)" )
877
845
img = setIf (img , "overlap" , "i.overlap > 0" , 0 )
878
846
img = set_name (
879
847
img ,
@@ -898,18 +866,14 @@ def brdf(img, bandName, kvolBand, kgeoBand, coefficients):
898
866
},
899
867
)
900
868
901
- img = set_name (
902
- img , bandName , "{fiso} + {fvol} * {kvol} + {fgeo} * {kvol}" , args
903
- )
869
+ img = set_name (img , bandName , "{fiso} + {fvol} * {kvol} + {fgeo} * {kvol}" , args )
904
870
return img
905
871
906
872
def applyCFactor (img , bandName , coefficients ):
907
873
img = brdf (img , "brdf" , "kvol" , "kgeo" , coefficients )
908
874
img = brdf (img , "brdf0" , "kvol0" , "kgeo0" , coefficients )
909
875
img = set_name (img , "cFactor" , "i.brdf0 / i.brdf" , coefficients )
910
- img = set_name (
911
- img , bandName , "{bandName} * i.cFactor" , {"bandName" : "i." + bandName }
912
- )
876
+ img = set_name (img , bandName , "{bandName} * i.cFactor" , {"bandName" : "i." + bandName })
913
877
return img
914
878
915
879
def adjustBands (img ):
0 commit comments