@google/earthengine 0.1.376 → 0.1.378
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.
- package/.tmp/BUILD +699 -0
- package/.tmp/METADATA +23 -0
- package/.tmp/VERSION_BUILD +47 -0
- package/build/browser.js +79 -67
- package/build/ee_api_js.js +16 -16
- package/build/ee_api_js_debug.js +63 -51
- package/build/ee_api_js_npm.js +79 -67
- package/build/main.js +79 -67
- package/package.json +1 -1
- package/src/apiclient.js +1 -1
- package/src/data.js +18 -11
- package/src/examples/CloudMasking/{Sentinel2ClearComposite.js → Sentinel2ClearComposites.js} +29 -28
package/build/main.js
CHANGED
|
@@ -1202,7 +1202,8 @@ $jscomp.polyfill("String.prototype.padStart", function(orig) {
|
|
|
1202
1202
|
return $jscomp.stringPadding(opt_padString, targetLength - string.length) + string;
|
|
1203
1203
|
};
|
|
1204
1204
|
}, "es8", "es3");
|
|
1205
|
-
var CLOSURE_TOGGLE_ORDINALS = {GoogFlags__async_throw_on_unicode_to_byte__enable:!1, GoogFlags__client_only_wiz_attribute_sanitization__disable:!1, GoogFlags__client_only_wiz_hook_context_fix__enable:!1, GoogFlags__override_disable_toggles:!1, GoogFlags__testonly_debug_flag__enable:!1, GoogFlags__testonly_disabled_flag__enable:!1, GoogFlags__testonly_stable_flag__disable:!1, GoogFlags__testonly_staging_flag__disable:!1,
|
|
1205
|
+
var CLOSURE_TOGGLE_ORDINALS = {GoogFlags__async_throw_on_unicode_to_byte__enable:!1, GoogFlags__client_only_wiz_attribute_sanitization__disable:!1, GoogFlags__client_only_wiz_hook_context_fix__enable:!1, GoogFlags__jspb_disable_serializing_empty_repeated_and_map_fields__disable:!1, GoogFlags__override_disable_toggles:!1, GoogFlags__testonly_debug_flag__enable:!1, GoogFlags__testonly_disabled_flag__enable:!1, GoogFlags__testonly_stable_flag__disable:!1, GoogFlags__testonly_staging_flag__disable:!1,
|
|
1206
|
+
GoogFlags__use_toggles:!1, GoogFlags__use_user_agent_client_hints__enable:!1};
|
|
1206
1207
|
/*
|
|
1207
1208
|
|
|
1208
1209
|
Copyright The Closure Library Authors.
|
|
@@ -2969,6 +2970,7 @@ module$exports$closure$flags$flags$2etoggles.TOGGLE_GoogFlags__use_user_agent_cl
|
|
|
2969
2970
|
module$exports$closure$flags$flags$2etoggles.TOGGLE_GoogFlags__async_throw_on_unicode_to_byte__enable = !1;
|
|
2970
2971
|
module$exports$closure$flags$flags$2etoggles.TOGGLE_GoogFlags__client_only_wiz_attribute_sanitization__disable = !1;
|
|
2971
2972
|
module$exports$closure$flags$flags$2etoggles.TOGGLE_GoogFlags__client_only_wiz_hook_context_fix__enable = !1;
|
|
2973
|
+
module$exports$closure$flags$flags$2etoggles.TOGGLE_GoogFlags__jspb_disable_serializing_empty_repeated_and_map_fields__disable = !1;
|
|
2972
2974
|
module$exports$closure$flags$flags$2etoggles.TOGGLE_GoogFlags__testonly_disabled_flag__enable = !1;
|
|
2973
2975
|
module$exports$closure$flags$flags$2etoggles.TOGGLE_GoogFlags__testonly_debug_flag__enable = !1;
|
|
2974
2976
|
module$exports$closure$flags$flags$2etoggles.TOGGLE_GoogFlags__testonly_staging_flag__disable = !1;
|
|
@@ -2979,6 +2981,8 @@ goog.flags.USE_USER_AGENT_CLIENT_HINTS = module$exports$closure$flags$flags$2eto
|
|
|
2979
2981
|
goog.flags.ASYNC_THROW_ON_UNICODE_TO_BYTE = module$exports$closure$flags$flags$2etoggles.TOGGLE_GoogFlags__use_toggles ? module$exports$closure$flags$flags$2etoggles.TOGGLE_GoogFlags__async_throw_on_unicode_to_byte__enable : goog.readFlagInternalDoNotUseOrElse(899588437, !1);
|
|
2980
2982
|
goog.flags.CLIENT_ONLY_WIZ_ATTRIBUTE_SANITIZATION = module$exports$closure$flags$flags$2etoggles.TOGGLE_GoogFlags__use_toggles ? module$exports$closure$flags$flags$2etoggles.TOGGLE_GoogFlags__override_disable_toggles || !module$exports$closure$flags$flags$2etoggles.TOGGLE_GoogFlags__client_only_wiz_attribute_sanitization__disable : goog.readFlagInternalDoNotUseOrElse(533565600, !0);
|
|
2981
2983
|
goog.flags.CLIENT_ONLY_WIZ_HOOK_CONTEXT_FIX = module$exports$closure$flags$flags$2etoggles.TOGGLE_GoogFlags__use_toggles ? module$exports$closure$flags$flags$2etoggles.TOGGLE_GoogFlags__client_only_wiz_hook_context_fix__enable : goog.readFlagInternalDoNotUseOrElse(563486499, !1);
|
|
2984
|
+
goog.flags.JSPB_DISABLE_SERIALIZING_EMPTY_REPEATED_AND_MAP_FIELDS = module$exports$closure$flags$flags$2etoggles.TOGGLE_GoogFlags__use_toggles ? goog.FLAGS_STAGING_DEFAULT && (module$exports$closure$flags$flags$2etoggles.TOGGLE_GoogFlags__override_disable_toggles || !module$exports$closure$flags$flags$2etoggles.TOGGLE_GoogFlags__jspb_disable_serializing_empty_repeated_and_map_fields__disable) : goog.readFlagInternalDoNotUseOrElse(572417392,
|
|
2985
|
+
module$contents$goog$flags_STAGING);
|
|
2982
2986
|
goog.flags.TESTONLY_DISABLED_FLAG = module$exports$closure$flags$flags$2etoggles.TOGGLE_GoogFlags__use_toggles ? module$exports$closure$flags$flags$2etoggles.TOGGLE_GoogFlags__testonly_disabled_flag__enable : goog.readFlagInternalDoNotUseOrElse(2147483644, !1);
|
|
2983
2987
|
goog.flags.TESTONLY_DEBUG_FLAG = module$exports$closure$flags$flags$2etoggles.TOGGLE_GoogFlags__use_toggles ? goog.DEBUG || module$exports$closure$flags$flags$2etoggles.TOGGLE_GoogFlags__testonly_debug_flag__enable : goog.readFlagInternalDoNotUseOrElse(2147483645, goog.DEBUG);
|
|
2984
2988
|
goog.flags.TESTONLY_STAGING_FLAG = module$exports$closure$flags$flags$2etoggles.TOGGLE_GoogFlags__use_toggles ? goog.FLAGS_STAGING_DEFAULT && (module$exports$closure$flags$flags$2etoggles.TOGGLE_GoogFlags__override_disable_toggles || !module$exports$closure$flags$flags$2etoggles.TOGGLE_GoogFlags__testonly_staging_flag__disable) : goog.readFlagInternalDoNotUseOrElse(2147483646, module$contents$goog$flags_STAGING);
|
|
@@ -3724,24 +3728,18 @@ goog.userAgent.PLATFORM = goog.userAgent.determinePlatform_();
|
|
|
3724
3728
|
goog.userAgent.ASSUME_MAC = !1;
|
|
3725
3729
|
goog.userAgent.ASSUME_WINDOWS = !1;
|
|
3726
3730
|
goog.userAgent.ASSUME_LINUX = !1;
|
|
3727
|
-
goog.userAgent.ASSUME_X11 = !1;
|
|
3728
3731
|
goog.userAgent.ASSUME_ANDROID = !1;
|
|
3729
3732
|
goog.userAgent.ASSUME_IPHONE = !1;
|
|
3730
3733
|
goog.userAgent.ASSUME_IPAD = !1;
|
|
3731
3734
|
goog.userAgent.ASSUME_IPOD = !1;
|
|
3732
3735
|
goog.userAgent.ASSUME_KAIOS = !1;
|
|
3733
|
-
goog.userAgent.PLATFORM_KNOWN_ = goog.userAgent.ASSUME_MAC || goog.userAgent.ASSUME_WINDOWS || goog.userAgent.ASSUME_LINUX || goog.userAgent.
|
|
3736
|
+
goog.userAgent.PLATFORM_KNOWN_ = goog.userAgent.ASSUME_MAC || goog.userAgent.ASSUME_WINDOWS || goog.userAgent.ASSUME_LINUX || goog.userAgent.ASSUME_ANDROID || goog.userAgent.ASSUME_IPHONE || goog.userAgent.ASSUME_IPAD || goog.userAgent.ASSUME_IPOD;
|
|
3734
3737
|
goog.userAgent.MAC = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_MAC : module$contents$goog$labs$userAgent$platform_isMacintosh();
|
|
3735
3738
|
goog.userAgent.WINDOWS = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_WINDOWS : module$contents$goog$labs$userAgent$platform_isWindows();
|
|
3736
3739
|
goog.userAgent.isLegacyLinux_ = function() {
|
|
3737
3740
|
return module$contents$goog$labs$userAgent$platform_isLinux() || module$contents$goog$labs$userAgent$platform_isChromeOS();
|
|
3738
3741
|
};
|
|
3739
3742
|
goog.userAgent.LINUX = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_LINUX : goog.userAgent.isLegacyLinux_();
|
|
3740
|
-
goog.userAgent.isX11_ = function() {
|
|
3741
|
-
var navigator = goog.userAgent.getNavigatorTyped();
|
|
3742
|
-
return !!navigator && goog.string.internal.contains(navigator.appVersion || "", "X11");
|
|
3743
|
-
};
|
|
3744
|
-
goog.userAgent.X11 = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_X11 : goog.userAgent.isX11_();
|
|
3745
3743
|
goog.userAgent.ANDROID = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_ANDROID : module$contents$goog$labs$userAgent$platform_isAndroid();
|
|
3746
3744
|
goog.userAgent.IPHONE = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_IPHONE : module$contents$goog$labs$userAgent$platform_isIphone();
|
|
3747
3745
|
goog.userAgent.IPAD = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_IPAD : module$contents$goog$labs$userAgent$platform_isIpad();
|
|
@@ -6064,7 +6062,7 @@ module$exports$eeapiclient$domain_object.strictDeserialize = function(type, raw)
|
|
|
6064
6062
|
};
|
|
6065
6063
|
var module$contents$eeapiclient$domain_object_CopyValueGetter, module$contents$eeapiclient$domain_object_CopyValueSetter, module$contents$eeapiclient$domain_object_CopyConstructor, module$contents$eeapiclient$domain_object_CopyInstanciator;
|
|
6066
6064
|
function module$contents$eeapiclient$domain_object_deepCopy(source, valueGetter, valueSetter, copyInstanciator, targetConstructor) {
|
|
6067
|
-
for (var target = copyInstanciator(targetConstructor), metadata = module$contents$eeapiclient$domain_object_deepCopyMetadata(source, target), arrays = metadata.arrays || {}, objects = metadata.objects || {}, objectMaps = metadata.objectMaps || {}, $jscomp$iter$19 = $jscomp.makeIterator(metadata.keys || []), $jscomp$key$key = $jscomp$iter$19.next(), $jscomp$loop$
|
|
6065
|
+
for (var target = copyInstanciator(targetConstructor), metadata = module$contents$eeapiclient$domain_object_deepCopyMetadata(source, target), arrays = metadata.arrays || {}, objects = metadata.objects || {}, objectMaps = metadata.objectMaps || {}, $jscomp$iter$19 = $jscomp.makeIterator(metadata.keys || []), $jscomp$key$key = $jscomp$iter$19.next(), $jscomp$loop$m192531680$0 = {}; !$jscomp$key$key.done; $jscomp$loop$m192531680$0 = {mapMetadata:$jscomp$loop$m192531680$0.mapMetadata},
|
|
6068
6066
|
$jscomp$key$key = $jscomp$iter$19.next()) {
|
|
6069
6067
|
var key = $jscomp$key$key.value, value = valueGetter(key, source);
|
|
6070
6068
|
if (null != value) {
|
|
@@ -6077,11 +6075,11 @@ function module$contents$eeapiclient$domain_object_deepCopy(source, valueGetter,
|
|
|
6077
6075
|
} else if (objects.hasOwnProperty(key)) {
|
|
6078
6076
|
copy = module$contents$eeapiclient$domain_object_deepCopyValue(value, valueGetter, valueSetter, copyInstanciator, !1, !0, objects[key]);
|
|
6079
6077
|
} else if (objectMaps.hasOwnProperty(key)) {
|
|
6080
|
-
$jscomp$loop$
|
|
6078
|
+
$jscomp$loop$m192531680$0.mapMetadata = objectMaps[key], copy = $jscomp$loop$m192531680$0.mapMetadata.isPropertyArray ? value.map(function($jscomp$loop$m192531680$0) {
|
|
6081
6079
|
return function(v) {
|
|
6082
|
-
return module$contents$eeapiclient$domain_object_deepCopyObjectMap(v, $jscomp$loop$
|
|
6080
|
+
return module$contents$eeapiclient$domain_object_deepCopyObjectMap(v, $jscomp$loop$m192531680$0.mapMetadata, valueGetter, valueSetter, copyInstanciator);
|
|
6083
6081
|
};
|
|
6084
|
-
}($jscomp$loop$
|
|
6082
|
+
}($jscomp$loop$m192531680$0)) : module$contents$eeapiclient$domain_object_deepCopyObjectMap(value, $jscomp$loop$m192531680$0.mapMetadata, valueGetter, valueSetter, copyInstanciator);
|
|
6085
6083
|
} else if (Array.isArray(value)) {
|
|
6086
6084
|
if (metadata.emptyArrayIsUnset && 0 === value.length) {
|
|
6087
6085
|
continue;
|
|
@@ -6127,39 +6125,39 @@ function module$contents$eeapiclient$domain_object_deepEquals(serializable1, ser
|
|
|
6127
6125
|
if (!(module$contents$eeapiclient$domain_object_sameKeys(keys1, metadata2.keys || []) && module$contents$eeapiclient$domain_object_sameKeys(arrays1, arrays2) && module$contents$eeapiclient$domain_object_sameKeys(objects1, objects2) && module$contents$eeapiclient$domain_object_sameKeys(objectMaps1, objectMaps2))) {
|
|
6128
6126
|
return !1;
|
|
6129
6127
|
}
|
|
6130
|
-
for (var $jscomp$iter$21 = $jscomp.makeIterator(keys1), $jscomp$key$key = $jscomp$iter$21.next(), $jscomp$loop$
|
|
6128
|
+
for (var $jscomp$iter$21 = $jscomp.makeIterator(keys1), $jscomp$key$key = $jscomp$iter$21.next(), $jscomp$loop$m192531680$1 = {}; !$jscomp$key$key.done; $jscomp$loop$m192531680$1 = {value2$jscomp$7:$jscomp$loop$m192531680$1.value2$jscomp$7, mapMetadata$jscomp$2:$jscomp$loop$m192531680$1.mapMetadata$jscomp$2}, $jscomp$key$key = $jscomp$iter$21.next()) {
|
|
6131
6129
|
var key = $jscomp$key$key.value, has1 = module$contents$eeapiclient$domain_object_hasAndIsNotEmptyArray(serializable1, key, metadata1), has2 = module$contents$eeapiclient$domain_object_hasAndIsNotEmptyArray(serializable2, key, metadata2);
|
|
6132
6130
|
if (has1 !== has2) {
|
|
6133
6131
|
return !1;
|
|
6134
6132
|
}
|
|
6135
6133
|
if (has1) {
|
|
6136
6134
|
var value1 = serializable1.Serializable$get(key);
|
|
6137
|
-
$jscomp$loop$
|
|
6135
|
+
$jscomp$loop$m192531680$1.value2$jscomp$7 = serializable2.Serializable$get(key);
|
|
6138
6136
|
if (arrays1.hasOwnProperty(key)) {
|
|
6139
|
-
if (!module$contents$eeapiclient$domain_object_deepEqualsValue(value1, $jscomp$loop$
|
|
6137
|
+
if (!module$contents$eeapiclient$domain_object_deepEqualsValue(value1, $jscomp$loop$m192531680$1.value2$jscomp$7, !0, !0)) {
|
|
6140
6138
|
return !1;
|
|
6141
6139
|
}
|
|
6142
6140
|
} else if (objects1.hasOwnProperty(key)) {
|
|
6143
|
-
if (!module$contents$eeapiclient$domain_object_deepEqualsValue(value1, $jscomp$loop$
|
|
6141
|
+
if (!module$contents$eeapiclient$domain_object_deepEqualsValue(value1, $jscomp$loop$m192531680$1.value2$jscomp$7, !1, !0)) {
|
|
6144
6142
|
return !1;
|
|
6145
6143
|
}
|
|
6146
6144
|
} else if (objectMaps1.hasOwnProperty(key)) {
|
|
6147
|
-
if ($jscomp$loop$
|
|
6148
|
-
if (!module$contents$eeapiclient$domain_object_sameKeys(value1, $jscomp$loop$
|
|
6145
|
+
if ($jscomp$loop$m192531680$1.mapMetadata$jscomp$2 = objectMaps1[key], $jscomp$loop$m192531680$1.mapMetadata$jscomp$2.isPropertyArray) {
|
|
6146
|
+
if (!module$contents$eeapiclient$domain_object_sameKeys(value1, $jscomp$loop$m192531680$1.value2$jscomp$7) || value1.some(function($jscomp$loop$m192531680$1) {
|
|
6149
6147
|
return function(v1, i) {
|
|
6150
|
-
return !module$contents$eeapiclient$domain_object_deepEqualsObjectMap(v1, $jscomp$loop$
|
|
6148
|
+
return !module$contents$eeapiclient$domain_object_deepEqualsObjectMap(v1, $jscomp$loop$m192531680$1.value2$jscomp$7[i], $jscomp$loop$m192531680$1.mapMetadata$jscomp$2);
|
|
6151
6149
|
};
|
|
6152
|
-
}($jscomp$loop$
|
|
6150
|
+
}($jscomp$loop$m192531680$1))) {
|
|
6153
6151
|
return !1;
|
|
6154
6152
|
}
|
|
6155
|
-
} else if (!module$contents$eeapiclient$domain_object_deepEqualsObjectMap(value1, $jscomp$loop$
|
|
6153
|
+
} else if (!module$contents$eeapiclient$domain_object_deepEqualsObjectMap(value1, $jscomp$loop$m192531680$1.value2$jscomp$7, $jscomp$loop$m192531680$1.mapMetadata$jscomp$2)) {
|
|
6156
6154
|
return !1;
|
|
6157
6155
|
}
|
|
6158
6156
|
} else if (Array.isArray(value1)) {
|
|
6159
|
-
if (!module$contents$eeapiclient$domain_object_deepEqualsValue(value1, $jscomp$loop$
|
|
6157
|
+
if (!module$contents$eeapiclient$domain_object_deepEqualsValue(value1, $jscomp$loop$m192531680$1.value2$jscomp$7, !0, !1)) {
|
|
6160
6158
|
return !1;
|
|
6161
6159
|
}
|
|
6162
|
-
} else if (!module$contents$eeapiclient$domain_object_deepEqualsValue(value1, $jscomp$loop$
|
|
6160
|
+
} else if (!module$contents$eeapiclient$domain_object_deepEqualsValue(value1, $jscomp$loop$m192531680$1.value2$jscomp$7, !1, !1)) {
|
|
6163
6161
|
return !1;
|
|
6164
6162
|
}
|
|
6165
6163
|
}
|
|
@@ -6560,7 +6558,7 @@ goog.string.Const.prototype.getTypedStringValue = function() {
|
|
|
6560
6558
|
return this.stringConstValueWithSecurityContract__googStringSecurityPrivate_;
|
|
6561
6559
|
};
|
|
6562
6560
|
goog.DEBUG && (goog.string.Const.prototype.toString = function() {
|
|
6563
|
-
return
|
|
6561
|
+
return this.stringConstValueWithSecurityContract__googStringSecurityPrivate_;
|
|
6564
6562
|
});
|
|
6565
6563
|
goog.string.Const.unwrap = function(stringConst) {
|
|
6566
6564
|
if (stringConst instanceof goog.string.Const && stringConst.constructor === goog.string.Const && stringConst.STRING_CONST_TYPE_MARKER__GOOG_STRING_SECURITY_PRIVATE_ === goog.string.Const.TYPE_MARKER_) {
|
|
@@ -13640,8 +13638,8 @@ $jscomp.global.Object.defineProperties(module$exports$eeapiclient$ee_api_client.
|
|
|
13640
13638
|
}, set:function(value) {
|
|
13641
13639
|
this.Serializable$set("start", value);
|
|
13642
13640
|
}}});
|
|
13643
|
-
var module$contents$eeapiclient$ee_api_client_PARAM_MAP_0 = {$Xgafv:"$.xgafv", access_token:"access_token", alt:"alt", assetId:"assetId",
|
|
13644
|
-
|
|
13641
|
+
var module$contents$eeapiclient$ee_api_client_PARAM_MAP_0 = {$Xgafv:"$.xgafv", access_token:"access_token", alt:"alt", assetId:"assetId", callback:"callback", fields:"fields", filter:"filter", key:"key", oauth_token:"oauth_token", overwrite:"overwrite", pageSize:"pageSize", pageToken:"pageToken", parent:"parent", prettyPrint:"prettyPrint", quotaUser:"quotaUser", region:"region", updateMask:"updateMask", uploadType:"uploadType", upload_protocol:"upload_protocol", view:"view",
|
|
13642
|
+
workloadTag:"workloadTag"};
|
|
13645
13643
|
module$exports$eeapiclient$ee_api_client.IBillingAccountsSubscriptionsApiClient$XgafvEnum = function() {
|
|
13646
13644
|
};
|
|
13647
13645
|
module$exports$eeapiclient$ee_api_client.BillingAccountsSubscriptionsApiClient$XgafvEnum = {1:"1", 2:"2", values:function() {
|
|
@@ -17393,7 +17391,7 @@ goog.debug.entryPointRegistry.register(function(transformer) {
|
|
|
17393
17391
|
ee.apiclient = {};
|
|
17394
17392
|
var module$contents$ee$apiclient_apiclient = {};
|
|
17395
17393
|
ee.apiclient.VERSION = module$exports$ee$apiVersion.V1;
|
|
17396
|
-
ee.apiclient.API_CLIENT_VERSION = "0.1.
|
|
17394
|
+
ee.apiclient.API_CLIENT_VERSION = "0.1.378";
|
|
17397
17395
|
ee.apiclient.NULL_VALUE = module$exports$eeapiclient$domain_object.NULL_VALUE;
|
|
17398
17396
|
ee.apiclient.PromiseRequestService = module$exports$eeapiclient$promise_request_service.PromiseRequestService;
|
|
17399
17397
|
ee.apiclient.MakeRequestParams = module$contents$eeapiclient$request_params_MakeRequestParams;
|
|
@@ -17684,8 +17682,8 @@ module$contents$ee$apiclient_apiclient.send = function(path, params, callback, m
|
|
|
17684
17682
|
var profileHookAtCallTime = module$contents$ee$apiclient_apiclient.profileHook_, contentType = "application/x-www-form-urlencoded";
|
|
17685
17683
|
body && (contentType = "application/json", method && method.startsWith("multipart") && (contentType = method, method = "POST"));
|
|
17686
17684
|
method = method || "POST";
|
|
17687
|
-
var headers = {"Content-Type":contentType}, version = "0.1.
|
|
17688
|
-
"0.1.
|
|
17685
|
+
var headers = {"Content-Type":contentType}, version = "0.1.378";
|
|
17686
|
+
"0.1.378" === version && (version = "latest");
|
|
17689
17687
|
headers[module$contents$ee$apiclient_apiclient.API_CLIENT_VERSION_HEADER] = "ee-js/" + version;
|
|
17690
17688
|
var authToken = module$contents$ee$apiclient_apiclient.getAuthToken();
|
|
17691
17689
|
if (null != authToken) {
|
|
@@ -24320,8 +24318,8 @@ function module$contents$safevalues$internals$attribute_impl_unwrapAttributePref
|
|
|
24320
24318
|
throw Error(message);
|
|
24321
24319
|
}
|
|
24322
24320
|
module$exports$safevalues$internals$attribute_impl.unwrapAttributePrefix = module$contents$safevalues$internals$attribute_impl_unwrapAttributePrefix;
|
|
24323
|
-
var $jscomp$templatelit$
|
|
24324
|
-
["\\0"]), $jscomp$templatelit$
|
|
24321
|
+
var $jscomp$templatelit$1274514361$0 = $jscomp.createTemplateTagFirstArg([""]), $jscomp$templatelit$1274514361$1 = $jscomp.createTemplateTagFirstArgWithRaw(["\x00"], ["\\0"]), $jscomp$templatelit$1274514361$2 = $jscomp.createTemplateTagFirstArgWithRaw(["\n"], ["\\n"]), $jscomp$templatelit$1274514361$3 = $jscomp.createTemplateTagFirstArgWithRaw(["\x00"], ["\\u0000"]), $jscomp$templatelit$1274514361$4 = $jscomp.createTemplateTagFirstArg([""]), $jscomp$templatelit$1274514361$5 = $jscomp.createTemplateTagFirstArgWithRaw(["\x00"],
|
|
24322
|
+
["\\0"]), $jscomp$templatelit$1274514361$6 = $jscomp.createTemplateTagFirstArgWithRaw(["\n"], ["\\n"]), $jscomp$templatelit$1274514361$7 = $jscomp.createTemplateTagFirstArgWithRaw(["\x00"], ["\\u0000"]), module$contents$safevalues$internals$string_literal_module = module$contents$safevalues$internals$string_literal_module || {id:"third_party/javascript/safevalues/internals/string_literal.closure.js"};
|
|
24325
24323
|
function module$contents$safevalues$internals$string_literal_assertIsTemplateObject(templateObj, numExprs) {
|
|
24326
24324
|
if (!module$contents$safevalues$internals$string_literal_isTemplateObject(templateObj) || numExprs + 1 !== templateObj.length) {
|
|
24327
24325
|
throw new TypeError("\n ############################## ERROR ##############################\n\n It looks like you are trying to call a template tag function (fn`...`)\n using the normal function syntax (fn(...)), which is not supported.\n\n The functions in the safevalues library are not designed to be called\n like normal functions, and doing so invalidates the security guarantees\n that safevalues provides.\n\n If you are stuck and not sure how to proceed, please reach out to us\n instead through:\n - go/ise-hardening-yaqs (preferred) // LINE-INTERNAL\n - g/ise-hardening // LINE-INTERNAL\n - https://github.com/google/safevalues/issues\n\n ############################## ERROR ##############################");
|
|
@@ -24335,14 +24333,14 @@ function module$contents$safevalues$internals$string_literal_checkTranspiled(fn)
|
|
|
24335
24333
|
return -1 === fn.toString().indexOf("`");
|
|
24336
24334
|
}
|
|
24337
24335
|
var module$contents$safevalues$internals$string_literal_isTranspiled = module$contents$safevalues$internals$string_literal_checkTranspiled(function(tag) {
|
|
24338
|
-
return tag($jscomp$templatelit$
|
|
24336
|
+
return tag($jscomp$templatelit$1274514361$0);
|
|
24339
24337
|
}) || module$contents$safevalues$internals$string_literal_checkTranspiled(function(tag) {
|
|
24340
|
-
return tag($jscomp$templatelit$
|
|
24338
|
+
return tag($jscomp$templatelit$1274514361$1);
|
|
24341
24339
|
}) || module$contents$safevalues$internals$string_literal_checkTranspiled(function(tag) {
|
|
24342
|
-
return tag($jscomp$templatelit$
|
|
24340
|
+
return tag($jscomp$templatelit$1274514361$2);
|
|
24343
24341
|
}) || module$contents$safevalues$internals$string_literal_checkTranspiled(function(tag) {
|
|
24344
|
-
return tag($jscomp$templatelit$
|
|
24345
|
-
}), module$contents$safevalues$internals$string_literal_frozenTSA = module$contents$safevalues$internals$string_literal_checkFrozen($jscomp$templatelit$
|
|
24342
|
+
return tag($jscomp$templatelit$1274514361$3);
|
|
24343
|
+
}), module$contents$safevalues$internals$string_literal_frozenTSA = module$contents$safevalues$internals$string_literal_checkFrozen($jscomp$templatelit$1274514361$4) && module$contents$safevalues$internals$string_literal_checkFrozen($jscomp$templatelit$1274514361$5) && module$contents$safevalues$internals$string_literal_checkFrozen($jscomp$templatelit$1274514361$6) && module$contents$safevalues$internals$string_literal_checkFrozen($jscomp$templatelit$1274514361$7);
|
|
24346
24344
|
function module$contents$safevalues$internals$string_literal_isTemplateObject(templateObj) {
|
|
24347
24345
|
return Array.isArray(templateObj) && Array.isArray(templateObj.raw) && templateObj.length === templateObj.raw.length && (module$contents$safevalues$internals$string_literal_isTranspiled || templateObj !== templateObj.raw) && (module$contents$safevalues$internals$string_literal_isTranspiled && !module$contents$safevalues$internals$string_literal_frozenTSA || module$contents$safevalues$internals$string_literal_checkFrozen(templateObj)) ?
|
|
24348
24346
|
!0 : !1;
|
|
@@ -24608,9 +24606,12 @@ function module$contents$safevalues$dom$globals$range_createContextualFragment(r
|
|
|
24608
24606
|
return range.createContextualFragment(module$contents$safevalues$internals$html_impl_unwrapHtml(html));
|
|
24609
24607
|
}
|
|
24610
24608
|
;var module$contents$safevalues$builders$html_sanitizer$inert_fragment_module = module$contents$safevalues$builders$html_sanitizer$inert_fragment_module || {id:"third_party/javascript/safevalues/builders/html_sanitizer/inert_fragment.closure.js"};
|
|
24611
|
-
function module$contents$safevalues$builders$html_sanitizer$inert_fragment_createInertFragment(dirtyHtml) {
|
|
24612
|
-
|
|
24613
|
-
|
|
24609
|
+
function module$contents$safevalues$builders$html_sanitizer$inert_fragment_createInertFragment(dirtyHtml, inertDocument) {
|
|
24610
|
+
if (goog.DEBUG && inertDocument.defaultView) {
|
|
24611
|
+
throw Error("createInertFragment called with non-inert document");
|
|
24612
|
+
}
|
|
24613
|
+
var range = inertDocument.createRange();
|
|
24614
|
+
range.selectNode(inertDocument.body);
|
|
24614
24615
|
var temporarySafeHtml = module$contents$safevalues$internals$html_impl_createHtmlInternal(dirtyHtml);
|
|
24615
24616
|
return module$contents$safevalues$dom$globals$range_createContextualFragment(range, temporarySafeHtml);
|
|
24616
24617
|
}
|
|
@@ -24715,21 +24716,25 @@ module$exports$safevalues$builders$html_sanitizer$html_sanitizer.HtmlSanitizerIm
|
|
|
24715
24716
|
return sanitizedHtml;
|
|
24716
24717
|
};
|
|
24717
24718
|
module$exports$safevalues$builders$html_sanitizer$html_sanitizer.HtmlSanitizerImpl.prototype.sanitize = function(html) {
|
|
24718
|
-
var
|
|
24719
|
-
fakeRoot.appendChild(this.
|
|
24719
|
+
var inertDocument = document.implementation.createHTMLDocument(""), fakeRoot = inertDocument.body;
|
|
24720
|
+
fakeRoot.appendChild(this.sanitizeToFragmentInternal(html, inertDocument));
|
|
24720
24721
|
var serializedNewTree = (new XMLSerializer()).serializeToString(fakeRoot);
|
|
24721
24722
|
serializedNewTree = serializedNewTree.slice(serializedNewTree.indexOf(">") + 1, serializedNewTree.lastIndexOf("</"));
|
|
24722
24723
|
return module$contents$safevalues$internals$html_impl_createHtmlInternal(serializedNewTree);
|
|
24723
24724
|
};
|
|
24724
24725
|
module$exports$safevalues$builders$html_sanitizer$html_sanitizer.HtmlSanitizerImpl.prototype.sanitizeToFragment = function(html) {
|
|
24725
|
-
|
|
24726
|
+
var inertDocument = document.implementation.createHTMLDocument("");
|
|
24727
|
+
return this.sanitizeToFragmentInternal(html, inertDocument);
|
|
24728
|
+
};
|
|
24729
|
+
module$exports$safevalues$builders$html_sanitizer$html_sanitizer.HtmlSanitizerImpl.prototype.sanitizeToFragmentInternal = function(html, inertDocument) {
|
|
24730
|
+
for (var $jscomp$this = this, dirtyFragment = module$contents$safevalues$builders$html_sanitizer$inert_fragment_createInertFragment(html, inertDocument), treeWalker = document.createTreeWalker(dirtyFragment, 5, function(n) {
|
|
24726
24731
|
return $jscomp$this.nodeFilter(n);
|
|
24727
|
-
}, !1), currentNode = treeWalker.nextNode(), sanitizedFragment =
|
|
24732
|
+
}, !1), currentNode = treeWalker.nextNode(), sanitizedFragment = inertDocument.createDocumentFragment(), sanitizedParent = sanitizedFragment; null !== currentNode;) {
|
|
24728
24733
|
var sanitizedNode = void 0;
|
|
24729
24734
|
if (module$contents$safevalues$builders$html_sanitizer$no_clobber_isText(currentNode)) {
|
|
24730
24735
|
sanitizedNode = this.sanitizeTextNode(currentNode);
|
|
24731
24736
|
} else if (module$contents$safevalues$builders$html_sanitizer$no_clobber_isElement(currentNode)) {
|
|
24732
|
-
sanitizedNode = this.sanitizeElementNode(currentNode);
|
|
24737
|
+
sanitizedNode = this.sanitizeElementNode(currentNode, inertDocument);
|
|
24733
24738
|
} else {
|
|
24734
24739
|
var message = "";
|
|
24735
24740
|
goog.DEBUG && (message = "Node is not of type text or element");
|
|
@@ -24749,8 +24754,8 @@ module$exports$safevalues$builders$html_sanitizer$html_sanitizer.HtmlSanitizerIm
|
|
|
24749
24754
|
module$exports$safevalues$builders$html_sanitizer$html_sanitizer.HtmlSanitizerImpl.prototype.sanitizeTextNode = function(textNode) {
|
|
24750
24755
|
return document.createTextNode(textNode.data);
|
|
24751
24756
|
};
|
|
24752
|
-
module$exports$safevalues$builders$html_sanitizer$html_sanitizer.HtmlSanitizerImpl.prototype.sanitizeElementNode = function(elementNode) {
|
|
24753
|
-
for (var elementName = module$contents$safevalues$builders$html_sanitizer$no_clobber_getNodeName(elementNode), newNode =
|
|
24757
|
+
module$exports$safevalues$builders$html_sanitizer$html_sanitizer.HtmlSanitizerImpl.prototype.sanitizeElementNode = function(elementNode, inertDocument) {
|
|
24758
|
+
for (var elementName = module$contents$safevalues$builders$html_sanitizer$no_clobber_getNodeName(elementNode), newNode = inertDocument.createElement(elementName), dirtyAttributes = elementNode.attributes, $jscomp$iter$43 = $jscomp.makeIterator(dirtyAttributes), $jscomp$key$ = $jscomp$iter$43.next(); !$jscomp$key$.done; $jscomp$key$ = $jscomp$iter$43.next()) {
|
|
24754
24759
|
var $jscomp$destructuring$var52 = $jscomp$key$.value, name = $jscomp$destructuring$var52.name, value = $jscomp$destructuring$var52.value, policy = this.sanitizerTable.getAttributePolicy(name, elementName);
|
|
24755
24760
|
if (this.satisfiesAllConditions(policy.conditions, dirtyAttributes)) {
|
|
24756
24761
|
switch(policy.policyAction) {
|
|
@@ -24805,7 +24810,7 @@ module$exports$safevalues$builders$html_sanitizer$html_sanitizer.HtmlSanitizerIm
|
|
|
24805
24810
|
return !0;
|
|
24806
24811
|
}
|
|
24807
24812
|
for (var $jscomp$iter$44 = $jscomp.makeIterator(conditions), $jscomp$key$ = $jscomp$iter$44.next(); !$jscomp$key$.done; $jscomp$key$ = $jscomp$iter$44.next()) {
|
|
24808
|
-
var $jscomp$destructuring$var54 = $jscomp.makeIterator($jscomp$key$.value), attrName__tsickle_destructured_1 = $jscomp$destructuring$var54.next().value, expectedValues = $jscomp$destructuring$var54.next().value, $jscomp$optchain$
|
|
24813
|
+
var $jscomp$destructuring$var54 = $jscomp.makeIterator($jscomp$key$.value), attrName__tsickle_destructured_1 = $jscomp$destructuring$var54.next().value, expectedValues = $jscomp$destructuring$var54.next().value, $jscomp$optchain$tmpm1803429925$0 = void 0, value = null == ($jscomp$optchain$tmpm1803429925$0 = attrs.getNamedItem(attrName__tsickle_destructured_1)) ? void 0 : $jscomp$optchain$tmpm1803429925$0.value;
|
|
24809
24814
|
if (value && !expectedValues.has(value)) {
|
|
24810
24815
|
return !1;
|
|
24811
24816
|
}
|
|
@@ -24986,6 +24991,9 @@ function module$contents$safevalues$builders$resource_url_builders_isValidPathSt
|
|
|
24986
24991
|
}
|
|
24987
24992
|
throw Error("The path start in the url is invalid.");
|
|
24988
24993
|
}
|
|
24994
|
+
function module$contents$safevalues$builders$resource_url_builders_isValidRelativePathStart(base) {
|
|
24995
|
+
return RegExp("^[^:\\s\\\\/]+/").test(base);
|
|
24996
|
+
}
|
|
24989
24997
|
function module$contents$safevalues$builders$resource_url_builders_trustedResourceUrl(templateObj) {
|
|
24990
24998
|
var rest = $jscomp.getRestArguments.apply(1, arguments);
|
|
24991
24999
|
goog.DEBUG && module$contents$safevalues$internals$string_literal_assertIsTemplateObject(templateObj, rest.length);
|
|
@@ -24997,7 +25005,7 @@ function module$contents$safevalues$builders$resource_url_builders_trustedResour
|
|
|
24997
25005
|
if (/^data:/.test(base)) {
|
|
24998
25006
|
throw Error("Data URLs cannot have expressions in the template literal input.");
|
|
24999
25007
|
}
|
|
25000
|
-
if (!module$contents$safevalues$builders$resource_url_builders_hasValidOrigin(base)
|
|
25008
|
+
if (!(module$contents$safevalues$builders$resource_url_builders_hasValidOrigin(base) || module$contents$safevalues$builders$resource_url_builders_isValidPathStart(base) || module$contents$safevalues$builders$resource_url_builders_isValidRelativePathStart(base) || module$contents$safevalues$builders$resource_url_builders_isValidAboutUrl(base))) {
|
|
25001
25009
|
throw Error("Trying to interpolate expressions in an unsupported url format.");
|
|
25002
25010
|
}
|
|
25003
25011
|
}
|
|
@@ -25042,6 +25050,10 @@ function module$contents$safevalues$builders$resource_url_builders_objectUrlFrom
|
|
|
25042
25050
|
return module$contents$safevalues$internals$resource_url_impl_createResourceUrlInternal(URL.createObjectURL(new Blob([scriptContent], {type:"text/javascript"})));
|
|
25043
25051
|
}
|
|
25044
25052
|
module$exports$safevalues$builders$resource_url_builders.objectUrlFromScript = module$contents$safevalues$builders$resource_url_builders_objectUrlFromScript;
|
|
25053
|
+
module$exports$safevalues$builders$resource_url_builders.toAbsoluteResourceUrl = function(pathRelativeUrl) {
|
|
25054
|
+
var originalUrl = module$contents$safevalues$internals$resource_url_impl_unwrapResourceUrl(pathRelativeUrl).toString(), qualifiedUrl = new URL(originalUrl, window.document.baseURI);
|
|
25055
|
+
return module$contents$safevalues$internals$resource_url_impl_createResourceUrlInternal(qualifiedUrl.toString());
|
|
25056
|
+
};
|
|
25045
25057
|
var module$exports$safevalues$builders$script_builders = {}, module$contents$safevalues$builders$script_builders_module = module$contents$safevalues$builders$script_builders_module || {id:"third_party/javascript/safevalues/builders/script_builders.closure.js"}, module$contents$safevalues$builders$script_builders_Primitive, module$contents$safevalues$builders$script_builders_Serializable;
|
|
25046
25058
|
function module$contents$safevalues$builders$script_builders_safeScript(templateObj) {
|
|
25047
25059
|
goog.DEBUG && module$contents$safevalues$internals$string_literal_assertIsTemplateObject(templateObj, 0);
|
|
@@ -25158,7 +25170,7 @@ function module$contents$safevalues$builders$url_builders_isSafeMimeType(mimeTyp
|
|
|
25158
25170
|
return 2 === (null == match ? void 0 : match.length) && (module$contents$safevalues$builders$url_builders_isSafeImageMimeType(match[1]) || module$contents$safevalues$builders$url_builders_isSafeVideoMimeType(match[1]) || module$contents$safevalues$builders$url_builders_isSafeAudioMimeType(match[1]) || module$contents$safevalues$builders$url_builders_isSafeFontMimeType(match[1]));
|
|
25159
25171
|
}
|
|
25160
25172
|
function module$contents$safevalues$builders$url_builders_isSafeImageMimeType(mimeType) {
|
|
25161
|
-
return /^image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp|x-icon|heic|heif|avif)$/i.test(mimeType);
|
|
25173
|
+
return /^image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp|x-icon|heic|heif|avif|x-ms-bmp)$/i.test(mimeType);
|
|
25162
25174
|
}
|
|
25163
25175
|
function module$contents$safevalues$builders$url_builders_isSafeVideoMimeType(mimeType) {
|
|
25164
25176
|
return /^video\/(?:mpeg|mp4|ogg|webm|x-matroska|quicktime|x-ms-wmv)$/i.test(mimeType);
|
|
@@ -25303,12 +25315,12 @@ function module$contents$safevalues$reporting$reporting_isChangedBySanitizing(s,
|
|
|
25303
25315
|
}
|
|
25304
25316
|
try {
|
|
25305
25317
|
module$contents$safevalues$builders$html_sanitizer$html_sanitizer_lenientlySanitizeHtmlAssertUnchanged(s);
|
|
25306
|
-
} catch ($jscomp$unused$catch$
|
|
25318
|
+
} catch ($jscomp$unused$catch$442189172$0) {
|
|
25307
25319
|
return module$contents$safevalues$reporting$reporting_reportLegacyConversion(options, module$contents$safevalues$reporting$reporting_ReportingType.HTML_CHANGED_BY_RELAXED_SANITIZING), !0;
|
|
25308
25320
|
}
|
|
25309
25321
|
try {
|
|
25310
25322
|
module$contents$safevalues$builders$html_sanitizer$html_sanitizer_sanitizeHtmlAssertUnchanged(s);
|
|
25311
|
-
} catch ($jscomp$unused$catch$
|
|
25323
|
+
} catch ($jscomp$unused$catch$442189172$1) {
|
|
25312
25324
|
return module$contents$safevalues$reporting$reporting_reportLegacyConversion(options, module$contents$safevalues$reporting$reporting_ReportingType.HTML_CHANGED_BY_SANITIZING), !0;
|
|
25313
25325
|
}
|
|
25314
25326
|
return !1;
|
|
@@ -26405,28 +26417,28 @@ ee.data.Profiler.Format.prototype.toString = function() {
|
|
|
26405
26417
|
ee.data.Profiler.Format.TEXT = new ee.data.Profiler.Format("text");
|
|
26406
26418
|
ee.data.Profiler.Format.JSON = new ee.data.Profiler.Format("json");
|
|
26407
26419
|
(function() {
|
|
26408
|
-
var exportedFnInfo = {}, orderedFnNames = "ee.ApiFunction.lookup ee.ApiFunction._apply ee.ApiFunction._call ee.batch.Export.table.toDrive ee.batch.Export.table.toAsset ee.batch.Export.table.toFeatureView ee.batch.Export.table.toBigQuery ee.batch.Export.image.toCloudStorage ee.batch.Export.video.toCloudStorage ee.batch.Export.map.toCloudStorage ee.batch.Export.video.toDrive ee.batch.Export.classifier.toAsset ee.batch.Export.image.toAsset ee.batch.Export.videoMap.toCloudStorage ee.batch.Export.table.toCloudStorage ee.batch.Export.image.toDrive ee.Collection.prototype.filterBounds ee.Collection.prototype.limit ee.Collection.prototype.map ee.Collection.prototype.filter ee.Collection.prototype.sort ee.Collection.prototype.iterate ee.Collection.prototype.filterDate ee.Collection.prototype.filterMetadata ee.ComputedObject.prototype.getInfo ee.ComputedObject.prototype.aside ee.ComputedObject.prototype.serialize ee.ComputedObject.prototype.evaluate ee.data.getFeatureViewTilesKey ee.data.createAsset ee.data.getList ee.data.
|
|
26420
|
+
var exportedFnInfo = {}, orderedFnNames = "ee.ApiFunction.lookup ee.ApiFunction._apply ee.ApiFunction._call ee.batch.Export.table.toDrive ee.batch.Export.table.toAsset ee.batch.Export.table.toFeatureView ee.batch.Export.table.toBigQuery ee.batch.Export.image.toCloudStorage ee.batch.Export.video.toCloudStorage ee.batch.Export.map.toCloudStorage ee.batch.Export.video.toDrive ee.batch.Export.classifier.toAsset ee.batch.Export.image.toAsset ee.batch.Export.videoMap.toCloudStorage ee.batch.Export.table.toCloudStorage ee.batch.Export.image.toDrive ee.Collection.prototype.filterBounds ee.Collection.prototype.limit ee.Collection.prototype.map ee.Collection.prototype.filter ee.Collection.prototype.sort ee.Collection.prototype.iterate ee.Collection.prototype.filterDate ee.Collection.prototype.filterMetadata ee.ComputedObject.prototype.getInfo ee.ComputedObject.prototype.aside ee.ComputedObject.prototype.serialize ee.ComputedObject.prototype.evaluate ee.data.getFeatureViewTilesKey ee.data.createAsset ee.data.getList ee.data.getAssetAcl ee.data.listAssets ee.data.authenticate ee.data.makeTableDownloadUrl ee.data.listFeatures ee.data.getWorkloadTag ee.data.createAssetHome ee.data.makeDownloadUrl ee.data.getThumbId ee.data.getAssetRootQuota ee.data.getTableDownloadId ee.data.getVideoThumbId ee.data.getFilmstripThumbId ee.data.startIngestion ee.data.makeThumbUrl ee.data.computeValue ee.data.authenticateViaPrivateKey ee.data.getAssetRoots ee.data.listImages ee.data.setAssetProperties ee.data.getInfo ee.data.listBuckets ee.data.getDownloadId ee.data.setAssetAcl ee.data.getTaskListWithLimit ee.data.deleteAsset ee.data.cancelOperation ee.data.listOperations ee.data.getTaskList ee.data.copyAsset ee.data.resetWorkloadTag ee.data.updateAsset ee.data.renameAsset ee.data.getAsset ee.data.cancelTask ee.data.getMapId ee.data.newTaskId ee.data.createFolder ee.data.getOperation ee.data.setWorkloadTag ee.data.startTableIngestion ee.data.authenticateViaPopup ee.data.getTileUrl ee.data.setDefaultWorkloadTag ee.data.startProcessing ee.data.updateTask ee.data.getTaskStatus ee.data.authenticateViaOauth ee.Date ee.Deserializer.decodeCloudApi ee.Deserializer.decode ee.Deserializer.fromJSON ee.Deserializer.fromCloudApiJSON ee.Dictionary ee.InitState ee.TILE_SIZE ee.reset ee.call ee.initialize ee.apply ee.Algorithms ee.Element.prototype.set ee.Encodable.SourceFrame ee.Feature ee.Feature.prototype.getMap ee.Feature.prototype.getInfo ee.FeatureCollection.prototype.select ee.FeatureCollection ee.FeatureCollection.prototype.getInfo ee.FeatureCollection.prototype.getDownloadURL ee.FeatureCollection.prototype.getMap ee.Filter.gt ee.Filter.lte ee.Filter.lt ee.Filter.and ee.Filter.or ee.Filter.gte ee.Filter.date ee.Filter.inList ee.Filter ee.Filter.prototype.not ee.Filter.metadata ee.Filter.eq ee.Filter.neq ee.Filter.bounds ee.Function.prototype.apply ee.Function.prototype.call ee.Geometry.MultiLineString ee.Geometry.Rectangle ee.Geometry.LineString ee.Geometry.Polygon ee.Geometry.prototype.toGeoJSON ee.Geometry.prototype.toGeoJSONString ee.Geometry.Point ee.Geometry.BBox ee.Geometry.LinearRing ee.Geometry.prototype.serialize ee.Geometry.MultiPolygon ee.Geometry ee.Geometry.MultiPoint ee.Image.cat ee.Image.prototype.expression ee.Image ee.Image.prototype.rename ee.Image.prototype.getMap ee.Image.prototype.getDownloadURL ee.Image.prototype.getInfo ee.Image.rgb ee.Image.prototype.getThumbURL ee.Image.prototype.getThumbId ee.Image.prototype.clip ee.Image.prototype.select ee.ImageCollection.prototype.getFilmstripThumbURL ee.ImageCollection.prototype.getVideoThumbURL ee.ImageCollection.prototype.getMap ee.ImageCollection.prototype.getInfo ee.ImageCollection.prototype.linkCollection ee.ImageCollection.prototype.select ee.ImageCollection.prototype.first ee.ImageCollection ee.List ee.Number ee.Serializer.toReadableCloudApiJSON ee.Serializer.encode ee.Serializer.toJSON ee.Serializer.encodeCloudApiPretty ee.Serializer.encodeCloudApi ee.Serializer.toReadableJSON ee.Serializer.toCloudApiJSON ee.String ee.Terrain".split(" "),
|
|
26409
26421
|
orderedParamLists = [["name"], ["name", "namedArgs"], ["name", "var_args"], "collection opt_description opt_folder opt_fileNamePrefix opt_fileFormat opt_selectors opt_maxVertices".split(" "), ["collection", "opt_description", "opt_assetId", "opt_maxVertices"], "collection opt_description opt_assetId opt_maxFeaturesPerTile opt_thinningStrategy opt_thinningRanking opt_zOrderRanking".split(" "), "collection opt_description opt_table opt_overwrite opt_append opt_selectors opt_maxVertices".split(" "),
|
|
26410
26422
|
"image opt_description opt_bucket opt_fileNamePrefix opt_dimensions opt_region opt_scale opt_crs opt_crsTransform opt_maxPixels opt_shardSize opt_fileDimensions opt_skipEmptyTiles opt_fileFormat opt_formatOptions".split(" "), "collection opt_description opt_bucket opt_fileNamePrefix opt_framesPerSecond opt_dimensions opt_region opt_scale opt_crs opt_crsTransform opt_maxPixels opt_maxFrames".split(" "), "image opt_description opt_bucket opt_fileFormat opt_path opt_writePublicTiles opt_scale opt_maxZoom opt_minZoom opt_region opt_skipEmptyTiles opt_mapsApiKey opt_bucketCorsUris".split(" "),
|
|
26411
26423
|
"collection opt_description opt_folder opt_fileNamePrefix opt_framesPerSecond opt_dimensions opt_region opt_scale opt_crs opt_crsTransform opt_maxPixels opt_maxFrames".split(" "), ["classifier", "opt_description", "opt_assetId"], "image opt_description opt_assetId opt_pyramidingPolicy opt_dimensions opt_region opt_scale opt_crs opt_crsTransform opt_maxPixels opt_shardSize".split(" "), "collection opt_description opt_bucket opt_fileNamePrefix opt_framesPerSecond opt_writePublicTiles opt_minZoom opt_maxZoom opt_scale opt_region opt_skipEmptyTiles opt_minTimeMachineZoomSubset opt_maxTimeMachineZoomSubset opt_tileWidth opt_tileHeight opt_tileStride opt_videoFormat opt_version opt_mapsApiKey opt_bucketCorsUris".split(" "),
|
|
26412
26424
|
"collection opt_description opt_bucket opt_fileNamePrefix opt_fileFormat opt_selectors opt_maxVertices".split(" "), "image opt_description opt_folder opt_fileNamePrefix opt_dimensions opt_region opt_scale opt_crs opt_crsTransform opt_maxPixels opt_shardSize opt_fileDimensions opt_skipEmptyTiles opt_fileFormat opt_formatOptions".split(" "), ["geometry"], ["max", "opt_property", "opt_ascending"], ["algorithm", "opt_dropNulls"], ["filter"], ["property", "opt_ascending"], ["algorithm", "opt_first"],
|
|
26413
|
-
["start", "opt_end"], ["name", "operator", "value"], ["opt_callback"], ["func", "var_args"], ["legacy"], ["callback"], ["params", "opt_callback"], ["value", "opt_path", "opt_force", "opt_properties", "opt_callback"], ["params", "opt_callback"], ["parent", "opt_params", "opt_callback"], ["clientId", "success", "opt_error", "opt_extraScopes", "opt_onImmediateFailed"], ["
|
|
26414
|
-
"opt_callback"], ["rootId", "opt_callback"], ["params", "opt_callback"], ["params", "opt_callback"], ["params", "opt_callback"], ["taskId", "request", "opt_callback"], ["id"], ["
|
|
26415
|
-
|
|
26416
|
-
|
|
26417
|
-
["func", "
|
|
26418
|
-
"opt_rightField", "opt_leftValue"], ["opt_filter"], [], ["name", "operator", "value"], ["name", "value"], ["name", "value"], ["geometry", "opt_errorMargin"], ["
|
|
26419
|
-
["legacy"], ["coords", "opt_proj", "opt_geodesic", "opt_maxError", "opt_evenOdd"], ["geoJson", "opt_proj", "opt_geodesic", "opt_evenOdd"], ["coords", "opt_proj"], ["
|
|
26420
|
-
"opt_callback"], ["opt_callback"], ["imageCollection", "opt_linkedBands", "opt_linkedProperties", "opt_matchPropertyName"], ["selectors", "opt_names"], [], ["args"], ["
|
|
26425
|
+
["start", "opt_end"], ["name", "operator", "value"], ["opt_callback"], ["func", "var_args"], ["legacy"], ["callback"], ["params", "opt_callback"], ["value", "opt_path", "opt_force", "opt_properties", "opt_callback"], ["params", "opt_callback"], ["assetId", "opt_callback"], ["parent", "opt_params", "opt_callback"], ["clientId", "success", "opt_error", "opt_extraScopes", "opt_onImmediateFailed"], ["id"], ["asset", "params", "opt_callback"], [], ["requestedId", "opt_callback"], ["id"], ["params",
|
|
26426
|
+
"opt_callback"], ["rootId", "opt_callback"], ["params", "opt_callback"], ["params", "opt_callback"], ["params", "opt_callback"], ["taskId", "request", "opt_callback"], ["id"], ["obj", "opt_callback"], ["privateKey", "opt_success", "opt_error", "opt_extraScopes", "opt_suppressDefaultScopes"], ["opt_callback"], ["parent", "opt_params", "opt_callback"], ["assetId", "properties", "opt_callback"], ["id", "opt_callback"], ["project", "opt_callback"], ["params", "opt_callback"], ["assetId", "aclUpdate",
|
|
26427
|
+
"opt_callback"], ["opt_limit", "opt_callback"], ["assetId", "opt_callback"], ["operationName", "opt_callback"], ["opt_limit", "opt_callback"], ["opt_callback"], ["sourceId", "destinationId", "opt_overwrite", "opt_callback"], ["opt_resetDefault"], ["assetId", "asset", "updateFields", "opt_callback"], ["sourceId", "destinationId", "opt_callback"], ["id", "opt_callback"], ["taskId", "opt_callback"], ["params", "opt_callback"], ["opt_count", "opt_callback"], ["path", "opt_force", "opt_callback"], ["operationName",
|
|
26428
|
+
"opt_callback"], ["tag"], ["taskId", "request", "opt_callback"], ["opt_success", "opt_error"], ["id", "x", "y", "z"], ["tag"], ["taskId", "params", "opt_callback"], ["taskId", "action", "opt_callback"], ["taskId", "opt_callback"], "clientId success opt_error opt_extraScopes opt_onImmediateFailed opt_suppressDefaultScopes".split(" "), ["date", "opt_tz"], ["json"], ["json"], ["json"], ["json"], ["opt_dict"], [], [], [], ["func", "var_args"], "opt_baseurl opt_tileurl opt_successCallback opt_errorCallback opt_xsrfToken opt_project".split(" "),
|
|
26429
|
+
["func", "namedArgs"], [], ["var_args"], [], ["geometry", "opt_properties"], ["opt_visParams", "opt_callback"], ["opt_callback"], ["propertySelectors", "opt_newProperties", "opt_retainGeometry"], ["args", "opt_column"], ["opt_callback"], ["opt_format", "opt_selectors", "opt_filename", "opt_callback"], ["opt_visParams", "opt_callback"], ["name", "value"], ["name", "value"], ["name", "value"], ["var_args"], ["var_args"], ["name", "value"], ["start", "opt_end"], ["opt_leftField", "opt_rightValue",
|
|
26430
|
+
"opt_rightField", "opt_leftValue"], ["opt_filter"], [], ["name", "operator", "value"], ["name", "value"], ["name", "value"], ["geometry", "opt_errorMargin"], ["namedArgs"], ["var_args"], ["coords", "opt_proj", "opt_geodesic", "opt_maxError"], ["coords", "opt_proj", "opt_geodesic", "opt_evenOdd"], ["coords", "opt_proj", "opt_geodesic", "opt_maxError"], ["coords", "opt_proj", "opt_geodesic", "opt_maxError", "opt_evenOdd"], [], [], ["coords", "opt_proj"], ["west", "south", "east", "north"], ["coords",
|
|
26431
|
+
"opt_proj", "opt_geodesic", "opt_maxError"], ["legacy"], ["coords", "opt_proj", "opt_geodesic", "opt_maxError", "opt_evenOdd"], ["geoJson", "opt_proj", "opt_geodesic", "opt_evenOdd"], ["coords", "opt_proj"], ["var_args"], ["expression", "opt_map"], ["opt_args"], ["var_args"], ["opt_visParams", "opt_callback"], ["params", "opt_callback"], ["opt_callback"], ["r", "g", "b"], ["params", "opt_callback"], ["params", "opt_callback"], ["geometry"], ["var_args"], ["params", "opt_callback"], ["params", "opt_callback"],
|
|
26432
|
+
["opt_visParams", "opt_callback"], ["opt_callback"], ["imageCollection", "opt_linkedBands", "opt_linkedProperties", "opt_matchPropertyName"], ["selectors", "opt_names"], [], ["args"], ["list"], ["number"], ["obj"], ["obj", "opt_isCompound"], ["obj"], ["obj"], ["obj"], ["obj"], ["obj"], ["string"], []];
|
|
26421
26433
|
[ee.ApiFunction.lookup, ee.ApiFunction._apply, ee.ApiFunction._call, module$contents$ee$batch_Export.table.toDrive, module$contents$ee$batch_Export.table.toAsset, module$contents$ee$batch_Export.table.toFeatureView, module$contents$ee$batch_Export.table.toBigQuery, module$contents$ee$batch_Export.image.toCloudStorage, module$contents$ee$batch_Export.video.toCloudStorage, module$contents$ee$batch_Export.map.toCloudStorage, module$contents$ee$batch_Export.video.toDrive, module$contents$ee$batch_Export.classifier.toAsset,
|
|
26422
26434
|
module$contents$ee$batch_Export.image.toAsset, module$contents$ee$batch_Export.videoMap.toCloudStorage, module$contents$ee$batch_Export.table.toCloudStorage, module$contents$ee$batch_Export.image.toDrive, ee.Collection.prototype.filterBounds, ee.Collection.prototype.limit, ee.Collection.prototype.map, ee.Collection.prototype.filter, ee.Collection.prototype.sort, ee.Collection.prototype.iterate, ee.Collection.prototype.filterDate, ee.Collection.prototype.filterMetadata, ee.ComputedObject.prototype.getInfo,
|
|
26423
|
-
ee.ComputedObject.prototype.aside, ee.ComputedObject.prototype.serialize, ee.ComputedObject.prototype.evaluate, ee.data.getFeatureViewTilesKey, ee.data.createAsset, ee.data.getList, ee.data.
|
|
26424
|
-
ee.data.startIngestion, ee.data.makeThumbUrl, ee.data.
|
|
26425
|
-
ee.data.
|
|
26426
|
-
ee.
|
|
26427
|
-
ee.Filter.
|
|
26428
|
-
ee.Image.prototype.
|
|
26429
|
-
ee.List, ee.Number, ee.Serializer.toReadableCloudApiJSON, ee.Serializer.encode, ee.Serializer.toJSON, ee.Serializer.encodeCloudApiPretty, ee.Serializer.encodeCloudApi, ee.Serializer.toReadableJSON, ee.Serializer.toCloudApiJSON, ee.String, ee.Terrain].forEach(function(fn, i) {
|
|
26435
|
+
ee.ComputedObject.prototype.aside, ee.ComputedObject.prototype.serialize, ee.ComputedObject.prototype.evaluate, ee.data.getFeatureViewTilesKey, ee.data.createAsset, ee.data.getList, ee.data.getAssetAcl, ee.data.listAssets, ee.data.authenticate, ee.data.makeTableDownloadUrl, ee.data.listFeatures, ee.data.getWorkloadTag, ee.data.createAssetHome, ee.data.makeDownloadUrl, ee.data.getThumbId, ee.data.getAssetRootQuota, ee.data.getTableDownloadId, ee.data.getVideoThumbId, ee.data.getFilmstripThumbId,
|
|
26436
|
+
ee.data.startIngestion, ee.data.makeThumbUrl, ee.data.computeValue, ee.data.authenticateViaPrivateKey, ee.data.getAssetRoots, ee.data.listImages, ee.data.setAssetProperties, ee.data.getInfo, ee.data.listBuckets, ee.data.getDownloadId, ee.data.setAssetAcl, ee.data.getTaskListWithLimit, ee.data.deleteAsset, ee.data.cancelOperation, ee.data.listOperations, ee.data.getTaskList, ee.data.copyAsset, ee.data.resetWorkloadTag, ee.data.updateAsset, ee.data.renameAsset, ee.data.getAsset, ee.data.cancelTask,
|
|
26437
|
+
ee.data.getMapId, ee.data.newTaskId, ee.data.createFolder, ee.data.getOperation, ee.data.setWorkloadTag, ee.data.startTableIngestion, ee.data.authenticateViaPopup, ee.data.getTileUrl, ee.data.setDefaultWorkloadTag, ee.data.startProcessing, ee.data.updateTask, ee.data.getTaskStatus, ee.data.authenticateViaOauth, ee.Date, ee.Deserializer.decodeCloudApi, ee.Deserializer.decode, ee.Deserializer.fromJSON, ee.Deserializer.fromCloudApiJSON, ee.Dictionary, ee.InitState, ee.TILE_SIZE, ee.reset, ee.call,
|
|
26438
|
+
ee.initialize, ee.apply, ee.Algorithms, ee.Element.prototype.set, ee.Encodable.SourceFrame, ee.Feature, ee.Feature.prototype.getMap, ee.Feature.prototype.getInfo, ee.FeatureCollection.prototype.select, ee.FeatureCollection, ee.FeatureCollection.prototype.getInfo, ee.FeatureCollection.prototype.getDownloadURL, ee.FeatureCollection.prototype.getMap, ee.Filter.gt, ee.Filter.lte, ee.Filter.lt, ee.Filter.and, ee.Filter.or, ee.Filter.gte, ee.Filter.date, ee.Filter.inList, ee.Filter, ee.Filter.prototype.not,
|
|
26439
|
+
ee.Filter.metadata, ee.Filter.eq, ee.Filter.neq, ee.Filter.bounds, ee.Function.prototype.apply, ee.Function.prototype.call, ee.Geometry.MultiLineString, ee.Geometry.Rectangle, ee.Geometry.LineString, ee.Geometry.Polygon, ee.Geometry.prototype.toGeoJSON, ee.Geometry.prototype.toGeoJSONString, ee.Geometry.Point, ee.Geometry.BBox, ee.Geometry.LinearRing, ee.Geometry.prototype.serialize, ee.Geometry.MultiPolygon, ee.Geometry, ee.Geometry.MultiPoint, ee.Image.cat, ee.Image.prototype.expression, ee.Image,
|
|
26440
|
+
ee.Image.prototype.rename, ee.Image.prototype.getMap, ee.Image.prototype.getDownloadURL, ee.Image.prototype.getInfo, ee.Image.rgb, ee.Image.prototype.getThumbURL, ee.Image.prototype.getThumbId, ee.Image.prototype.clip, ee.Image.prototype.select, ee.ImageCollection.prototype.getFilmstripThumbURL, ee.ImageCollection.prototype.getVideoThumbURL, ee.ImageCollection.prototype.getMap, ee.ImageCollection.prototype.getInfo, ee.ImageCollection.prototype.linkCollection, ee.ImageCollection.prototype.select,
|
|
26441
|
+
ee.ImageCollection.prototype.first, ee.ImageCollection, ee.List, ee.Number, ee.Serializer.toReadableCloudApiJSON, ee.Serializer.encode, ee.Serializer.toJSON, ee.Serializer.encodeCloudApiPretty, ee.Serializer.encodeCloudApi, ee.Serializer.toReadableJSON, ee.Serializer.toCloudApiJSON, ee.String, ee.Terrain].forEach(function(fn, i) {
|
|
26430
26442
|
fn && (exportedFnInfo[fn.toString()] = {name:orderedFnNames[i], paramNames:orderedParamLists[i]});
|
|
26431
26443
|
});
|
|
26432
26444
|
goog.global.EXPORTED_FN_INFO = exportedFnInfo;
|
package/package.json
CHANGED
package/src/apiclient.js
CHANGED
|
@@ -25,7 +25,7 @@ const {PromiseRequestService} = goog.require('eeapiclient.promise_request_servic
|
|
|
25
25
|
/** @namespace */
|
|
26
26
|
const apiclient = {};
|
|
27
27
|
|
|
28
|
-
const API_CLIENT_VERSION = '0.1.
|
|
28
|
+
const API_CLIENT_VERSION = '0.1.378';
|
|
29
29
|
|
|
30
30
|
exports.VERSION = apiVersion.VERSION;
|
|
31
31
|
exports.API_CLIENT_VERSION = API_CLIENT_VERSION;
|
package/src/data.js
CHANGED
|
@@ -1646,10 +1646,12 @@ ee.data.listImages = function(
|
|
|
1646
1646
|
|
|
1647
1647
|
|
|
1648
1648
|
/**
|
|
1649
|
-
* Returns
|
|
1650
|
-
*
|
|
1649
|
+
* Returns top-level assets and folders for the Cloud Project or user. Leave the
|
|
1650
|
+
* project field blank to use the current project.
|
|
1651
1651
|
*
|
|
1652
|
-
* @param {string=} project Project to query.
|
|
1652
|
+
* @param {string=} project Project to query, e.g. "projects/my-project".
|
|
1653
|
+
* Defaults to current project. Use "projects/earthengine-legacy" for user
|
|
1654
|
+
* home folders.
|
|
1653
1655
|
* @param {function(?ee.api.ListAssetsResponse, string=)=}
|
|
1654
1656
|
* opt_callback If not supplied, the call is made synchronously.
|
|
1655
1657
|
* @return {?ee.api.ListAssetsResponse}
|
|
@@ -1664,13 +1666,17 @@ ee.data.listBuckets = function(project, opt_callback) {
|
|
|
1664
1666
|
|
|
1665
1667
|
|
|
1666
1668
|
/**
|
|
1667
|
-
* Returns
|
|
1668
|
-
* are two levels deep, e.g. "users/johndoe" not "users/johndoe/notaroot".
|
|
1669
|
+
* Returns a list of top-level assets and folders for the current project.
|
|
1669
1670
|
*
|
|
1671
|
+
* The "id" values for Cloud Projects are "projects/my-project/assets/my-asset",
|
|
1672
|
+
* where legacy assets (if the current project is set to "earthengine-legacy")
|
|
1673
|
+
* are "users/my-username", not "users/my-username/my-asset".
|
|
1674
|
+
*
|
|
1675
|
+
* @deprecated Use ee.data.listBuckets() with no "project" parameter.
|
|
1670
1676
|
* @param {function(?Array<!ee.data.FolderDescription>, string=)=} opt_callback
|
|
1671
1677
|
* An optional callback. If not supplied, the call is made synchronously.
|
|
1672
|
-
* @return {?Array<!ee.data.FolderDescription>} The list of
|
|
1673
|
-
* Null if a callback is specified.
|
|
1678
|
+
* @return {?Array<!ee.data.FolderDescription>} The list of top-level assets and
|
|
1679
|
+
* folders. Null if a callback is specified.
|
|
1674
1680
|
* @export
|
|
1675
1681
|
*/
|
|
1676
1682
|
ee.data.getAssetRoots = function(opt_callback) {
|
|
@@ -1683,13 +1689,14 @@ ee.data.getAssetRoots = function(opt_callback) {
|
|
|
1683
1689
|
|
|
1684
1690
|
/**
|
|
1685
1691
|
* Attempts to create a home root folder (e.g. "users/joe") for the current
|
|
1686
|
-
* user. This results in an error if the user already has a home root folder
|
|
1687
|
-
* the requested ID is unavailable.
|
|
1692
|
+
* user. This results in an error if the user already has a home root folder
|
|
1693
|
+
* or the requested ID is unavailable.
|
|
1688
1694
|
*
|
|
1689
1695
|
* @param {string} requestedId The requested ID of the home folder
|
|
1690
1696
|
* (e.g. "users/joe").
|
|
1691
|
-
* @param {function(?Array<!ee.data.FolderDescription>, string=)=}
|
|
1692
|
-
* An optional callback. If not supplied, the call is made
|
|
1697
|
+
* @param {function(?Array<!ee.data.FolderDescription>, string=)=}
|
|
1698
|
+
* opt_callback An optional callback. If not supplied, the call is made
|
|
1699
|
+
* synchronously.
|
|
1693
1700
|
* @export
|
|
1694
1701
|
*/
|
|
1695
1702
|
ee.data.createAssetHome = function(requestedId, opt_callback) {
|
package/src/examples/CloudMasking/{Sentinel2ClearComposite.js → Sentinel2ClearComposites.js}
RENAMED
|
@@ -1,33 +1,27 @@
|
|
|
1
|
-
// This example demonstrates how to use Cloud Score+ QA bands to
|
|
2
|
-
//
|
|
1
|
+
// This example demonstrates how to use Cloud Score+ QA bands to generate and
|
|
2
|
+
// display a collection of monthly clear median composites.
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
|
|
6
5
|
// Region of interest.
|
|
7
|
-
var roi = ee.Geometry.Rectangle([-
|
|
8
|
-
|
|
9
|
-
// Harmonized Sentinel-2 Level 2A collection.
|
|
10
|
-
var s2 = ee.ImageCollection('COPERNICUS/S2_SR_HARMONIZED');
|
|
6
|
+
var roi = ee.Geometry.Rectangle([-120.3388, 37.4074, -119.2732, 38.1012]);
|
|
11
7
|
|
|
12
8
|
// Cloud Score+ image collection. Note Cloud Score+ is produced
|
|
13
9
|
// from Sentinel-2 Level 1C data and can be applied to either L1C
|
|
14
10
|
// or L2A collections.
|
|
15
11
|
var csPlus = ee.ImageCollection('GOOGLE/CLOUD_SCORE_PLUS/V1/S2_HARMONIZED');
|
|
16
12
|
|
|
17
|
-
//
|
|
18
|
-
var
|
|
13
|
+
// Harmonized Sentinel-2 Level 2A collection.
|
|
14
|
+
var s2 = ee.ImageCollection('COPERNICUS/S2_SR_HARMONIZED');
|
|
19
15
|
|
|
20
16
|
// Link S2 and CS+ results.
|
|
21
|
-
var linkedCollection =
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
* @return {ee.Image} masked Sentinel-2 image
|
|
30
|
-
*/
|
|
17
|
+
var linkedCollection =
|
|
18
|
+
s2.linkCollection(csPlus, ['cs', 'cs_cdf']).filterBounds(roi);
|
|
19
|
+
|
|
20
|
+
// Year to generate composites for.
|
|
21
|
+
var year = 2022;
|
|
22
|
+
var months = ee.List.sequence(1, 12);
|
|
23
|
+
|
|
24
|
+
// Masks pixels with low CS+ QA scores.
|
|
31
25
|
function maskLowQA(image) {
|
|
32
26
|
// CS+ QA band to use for masking. Options are 'cs' and 'cs_cdf'.
|
|
33
27
|
var qaBand = 'cs';
|
|
@@ -42,16 +36,23 @@ function maskLowQA(image) {
|
|
|
42
36
|
return image.updateMask(mask);
|
|
43
37
|
}
|
|
44
38
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
39
|
+
// Generate a collection of monthly median composites.
|
|
40
|
+
var composites = ee.ImageCollection(months.map(function(month) {
|
|
41
|
+
return linkedCollection.filter(ee.Filter.calendarRange(month, month, 'month'))
|
|
42
|
+
.map(maskLowQA)
|
|
43
|
+
.map(function(image) {
|
|
44
|
+
return image.toFloat();
|
|
45
|
+
})
|
|
46
|
+
.median()
|
|
47
|
+
.set('month', month);
|
|
48
|
+
}));
|
|
52
49
|
|
|
53
50
|
// Sentinel-2 visualization parameters.
|
|
54
51
|
var s2Viz = {bands: ['B4', 'B3', 'B2'], min: 0, max: 3000};
|
|
55
52
|
|
|
56
|
-
|
|
57
|
-
|
|
53
|
+
for (var month = 1; month <= 12; month++) {
|
|
54
|
+
var composite = composites.filter(ee.Filter.eq('month', month));
|
|
55
|
+
Map.addLayer(composite, s2Viz, 'composite ' + month);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
Map.centerObject(roi, 12);
|