-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathwindVectors
79 lines (60 loc) · 2.34 KB
/
windVectors
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
/**** Start of imports. If edited, may not auto-convert in the playground. ****/
var geometry = /* color: #d63000 */ee.Geometry.MultiPoint();
/***** End of imports. If edited, may not auto-convert in the playground. *****/
// fire features
var fire1 = ee.Geometry.Point(-116.19, 38.75)
var fire2 = ee.Geometry.Point(-105.21, 34.96)
var fire3 = ee.Geometry.Point(-86.84, 44.34)
// fire feature collection
var fires = ee.FeatureCollection([
ee.Feature(fire1,{}),
ee.Feature(fire2,{}),
ee.Feature(fire3,{})
])
// see fires on map
Map.addLayer(fires)
function addWindLayer(s, e) {
if(!s){
s = '2014-03-01';
}
if (!e) {
e = '2014-03-27';
}
var ic = ee.ImageCollection('NASA/NLDAS/FORA0125_H002')
//.filterDate('2017-03-01', '2017-03-27');
.select(['wind_u', 'wind_v'])
.filterDate(s, e);
var wind = ee.Image(ic.first())
return wind
}
var wind = addWindLayer()
//var layer = Map.addLayer(wind, {min:0,max:10, /*palette: ['FF0000', '0000FF']*/}, 'wind', true, 0.40);
// get wind vectors
function get_wind_vectors(feature) {
var scale = ee.Number(Map.getScale()).multiply(1e-4)
var point0 = feature.geometry()
var wind_vector = wind.reduceRegion(ee.Reducer.mean(),point0)
var wind_u = ee.Number(wind_vector.get('wind_u'))
var wind_v = ee.Number(wind_vector.get('wind_v'))
var du = wind_u.multiply(scale).add(point0.coordinates().get(0))
var dv = wind_v.multiply(scale).add(point0.coordinates().get(1))
var point1 = ee.Geometry.Point(du,dv)
var wind_line = ee.Geometry.LineString([point0,point1])
return ee.Feature(wind_line,{'wind_u':wind_u,'wind_v':wind_v})
}
function get_wind_points(feature) {
var scale = ee.Number(Map.getScale()).multiply(1e-4)
var point0 = feature.geometry()
var wind_vector = wind.reduceRegion(ee.Reducer.mean(),point0)
var wind_u = ee.Number(wind_vector.get('wind_u'))
var wind_v = ee.Number(wind_vector.get('wind_v'))
var du = wind_u.multiply(scale).add(point0.coordinates().get(0))
var dv = wind_v.multiply(scale).add(point0.coordinates().get(1))
var point1 = ee.Geometry.Point(du,dv)
var wind_line = ee.Geometry.LineString([point0,point1])
return ee.Feature(point1,{'wind_u':wind_u,'wind_v':wind_v})
}
var wind_vectors = fires.map(get_wind_vectors)
Map.addLayer(wind_vectors)
var wind_points = fires.map(get_wind_points)
Map.addLayer(wind_points, {color: 'blue'});