sentinel2_aws 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 562c78867a0854278dc189fc443e5be70974f7cbb5e4b6bdc0cd89e8fd76318e
4
+ data.tar.gz: 229824457e32074c4f2890d6461a36bc61f4d40d1c69039d93e03b5841e026fe
5
+ SHA512:
6
+ metadata.gz: 2c914fcf9545d95e5f0f7d1681dca4f8c09b9a3eefacaadb936096e015a75afd6f5e68d7051a8f7b1f5ee6fe9120e0320db252c8419ff8805ada437b20ba992d
7
+ data.tar.gz: b9d9addf49e456b0a4f9406bd244ec886d2cec58d3a84da08b80c40db13d40af452cb961e7b3aa31d10bab9d7d457b6270de1d5f4312793a58ee986549e609b3
@@ -0,0 +1,11 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /_yardoc/
4
+ /coverage/
5
+ /doc/
6
+ /pkg/
7
+ /spec/reports/
8
+ /tmp/
9
+
10
+ # rspec failure tracking
11
+ .rspec_status
data/.rspec ADDED
@@ -0,0 +1,3 @@
1
+ --format documentation
2
+ --color
3
+ --require spec_helper
@@ -0,0 +1,5 @@
1
+ sudo: false
2
+ language: ruby
3
+ rvm:
4
+ - 2.4.2
5
+ before_install: gem install bundler -v 1.16.0
data/Gemfile ADDED
@@ -0,0 +1,6 @@
1
+ source "https://rubygems.org"
2
+
3
+ git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
4
+
5
+ # Specify your gem's dependencies in sentinel2_aws.gemspec
6
+ gemspec
@@ -0,0 +1,566 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ sentinel2_aws (0.3.0)
5
+ aws-sdk (~> 3)
6
+ oj (< 4)
7
+
8
+ GEM
9
+ remote: https://rubygems.org/
10
+ specs:
11
+ aws-partitions (1.48.0)
12
+ aws-sdk (3.0.1)
13
+ aws-sdk-resources (~> 3)
14
+ aws-sdk-acm (1.2.0)
15
+ aws-sdk-core (~> 3)
16
+ aws-sigv4 (~> 1.0)
17
+ aws-sdk-alexaforbusiness (1.0.0)
18
+ aws-sdk-core (~> 3)
19
+ aws-sigv4 (~> 1.0)
20
+ aws-sdk-apigateway (1.8.0)
21
+ aws-sdk-core (~> 3)
22
+ aws-sigv4 (~> 1.0)
23
+ aws-sdk-applicationautoscaling (1.6.0)
24
+ aws-sdk-core (~> 3)
25
+ aws-sigv4 (~> 1.0)
26
+ aws-sdk-applicationdiscoveryservice (1.0.0)
27
+ aws-sdk-core (~> 3)
28
+ aws-sigv4 (~> 1.0)
29
+ aws-sdk-appstream (1.4.0)
30
+ aws-sdk-core (~> 3)
31
+ aws-sigv4 (~> 1.0)
32
+ aws-sdk-appsync (1.0.0)
33
+ aws-sdk-core (~> 3)
34
+ aws-sigv4 (~> 1.0)
35
+ aws-sdk-athena (1.0.0)
36
+ aws-sdk-core (~> 3)
37
+ aws-sigv4 (~> 1.0)
38
+ aws-sdk-autoscaling (1.4.0)
39
+ aws-sdk-core (~> 3)
40
+ aws-sigv4 (~> 1.0)
41
+ aws-sdk-batch (1.3.0)
42
+ aws-sdk-core (~> 3)
43
+ aws-sigv4 (~> 1.0)
44
+ aws-sdk-budgets (1.3.0)
45
+ aws-sdk-core (~> 3)
46
+ aws-sigv4 (~> 1.0)
47
+ aws-sdk-cloud9 (1.0.0)
48
+ aws-sdk-core (~> 3)
49
+ aws-sigv4 (~> 1.0)
50
+ aws-sdk-clouddirectory (1.1.0)
51
+ aws-sdk-core (~> 3)
52
+ aws-sigv4 (~> 1.0)
53
+ aws-sdk-cloudformation (1.3.0)
54
+ aws-sdk-core (~> 3)
55
+ aws-sigv4 (~> 1.0)
56
+ aws-sdk-cloudfront (1.1.0)
57
+ aws-sdk-core (~> 3)
58
+ aws-sigv4 (~> 1.0)
59
+ aws-sdk-cloudhsm (1.3.0)
60
+ aws-sdk-core (~> 3)
61
+ aws-sigv4 (~> 1.0)
62
+ aws-sdk-cloudhsmv2 (1.1.0)
63
+ aws-sdk-core (~> 3)
64
+ aws-sigv4 (~> 1.0)
65
+ aws-sdk-cloudsearch (1.0.0)
66
+ aws-sdk-core (~> 3)
67
+ aws-sigv4 (~> 1.0)
68
+ aws-sdk-cloudsearchdomain (1.0.0)
69
+ aws-sdk-core (~> 3)
70
+ aws-sigv4 (~> 1.0)
71
+ aws-sdk-cloudtrail (1.0.0)
72
+ aws-sdk-core (~> 3)
73
+ aws-sigv4 (~> 1.0)
74
+ aws-sdk-cloudwatch (1.3.0)
75
+ aws-sdk-core (~> 3)
76
+ aws-sigv4 (~> 1.0)
77
+ aws-sdk-cloudwatchevents (1.1.0)
78
+ aws-sdk-core (~> 3)
79
+ aws-sigv4 (~> 1.0)
80
+ aws-sdk-cloudwatchlogs (1.2.0)
81
+ aws-sdk-core (~> 3)
82
+ aws-sigv4 (~> 1.0)
83
+ aws-sdk-codebuild (1.4.0)
84
+ aws-sdk-core (~> 3)
85
+ aws-sigv4 (~> 1.0)
86
+ aws-sdk-codecommit (1.2.0)
87
+ aws-sdk-core (~> 3)
88
+ aws-sigv4 (~> 1.0)
89
+ aws-sdk-codedeploy (1.2.0)
90
+ aws-sdk-core (~> 3)
91
+ aws-sigv4 (~> 1.0)
92
+ aws-sdk-codepipeline (1.1.0)
93
+ aws-sdk-core (~> 3)
94
+ aws-sigv4 (~> 1.0)
95
+ aws-sdk-codestar (1.1.0)
96
+ aws-sdk-core (~> 3)
97
+ aws-sigv4 (~> 1.0)
98
+ aws-sdk-cognitoidentity (1.0.0)
99
+ aws-sdk-core (~> 3)
100
+ aws-sigv4 (~> 1.0)
101
+ aws-sdk-cognitoidentityprovider (1.2.0)
102
+ aws-sdk-core (~> 3)
103
+ aws-sigv4 (~> 1.0)
104
+ aws-sdk-cognitosync (1.0.0)
105
+ aws-sdk-core (~> 3)
106
+ aws-sigv4 (~> 1.0)
107
+ aws-sdk-comprehend (1.0.0)
108
+ aws-sdk-core (~> 3)
109
+ aws-sigv4 (~> 1.0)
110
+ aws-sdk-configservice (1.4.0)
111
+ aws-sdk-core (~> 3)
112
+ aws-sigv4 (~> 1.0)
113
+ aws-sdk-core (3.11.0)
114
+ aws-partitions (~> 1.0)
115
+ aws-sigv4 (~> 1.0)
116
+ jmespath (~> 1.0)
117
+ aws-sdk-costandusagereportservice (1.0.0)
118
+ aws-sdk-core (~> 3)
119
+ aws-sigv4 (~> 1.0)
120
+ aws-sdk-costexplorer (1.0.0)
121
+ aws-sdk-core (~> 3)
122
+ aws-sigv4 (~> 1.0)
123
+ aws-sdk-databasemigrationservice (1.3.0)
124
+ aws-sdk-core (~> 3)
125
+ aws-sigv4 (~> 1.0)
126
+ aws-sdk-datapipeline (1.0.0)
127
+ aws-sdk-core (~> 3)
128
+ aws-sigv4 (~> 1.0)
129
+ aws-sdk-dax (1.0.0)
130
+ aws-sdk-core (~> 3)
131
+ aws-sigv4 (~> 1.0)
132
+ aws-sdk-devicefarm (1.2.0)
133
+ aws-sdk-core (~> 3)
134
+ aws-sigv4 (~> 1.0)
135
+ aws-sdk-directconnect (1.1.0)
136
+ aws-sdk-core (~> 3)
137
+ aws-sigv4 (~> 1.0)
138
+ aws-sdk-directoryservice (1.0.0)
139
+ aws-sdk-core (~> 3)
140
+ aws-sigv4 (~> 1.0)
141
+ aws-sdk-dynamodb (1.3.0)
142
+ aws-sdk-core (~> 3)
143
+ aws-sigv4 (~> 1.0)
144
+ aws-sdk-dynamodbstreams (1.0.0)
145
+ aws-sdk-core (~> 3)
146
+ aws-sigv4 (~> 1.0)
147
+ aws-sdk-ec2 (1.21.0)
148
+ aws-sdk-core (~> 3)
149
+ aws-sigv4 (~> 1.0)
150
+ aws-sdk-ecr (1.2.0)
151
+ aws-sdk-core (~> 3)
152
+ aws-sigv4 (~> 1.0)
153
+ aws-sdk-ecs (1.7.0)
154
+ aws-sdk-core (~> 3)
155
+ aws-sigv4 (~> 1.0)
156
+ aws-sdk-efs (1.0.0)
157
+ aws-sdk-core (~> 3)
158
+ aws-sigv4 (~> 1.0)
159
+ aws-sdk-elasticache (1.3.0)
160
+ aws-sdk-core (~> 3)
161
+ aws-sigv4 (~> 1.0)
162
+ aws-sdk-elasticbeanstalk (1.3.0)
163
+ aws-sdk-core (~> 3)
164
+ aws-sigv4 (~> 1.0)
165
+ aws-sdk-elasticloadbalancing (1.1.0)
166
+ aws-sdk-core (~> 3)
167
+ aws-sigv4 (~> 1.0)
168
+ aws-sdk-elasticloadbalancingv2 (1.6.0)
169
+ aws-sdk-core (~> 3)
170
+ aws-sigv4 (~> 1.0)
171
+ aws-sdk-elasticsearchservice (1.3.0)
172
+ aws-sdk-core (~> 3)
173
+ aws-sigv4 (~> 1.0)
174
+ aws-sdk-elastictranscoder (1.0.0)
175
+ aws-sdk-core (~> 3)
176
+ aws-sigv4 (~> 1.0)
177
+ aws-sdk-emr (1.1.0)
178
+ aws-sdk-core (~> 3)
179
+ aws-sigv4 (~> 1.0)
180
+ aws-sdk-firehose (1.1.0)
181
+ aws-sdk-core (~> 3)
182
+ aws-sigv4 (~> 1.0)
183
+ aws-sdk-gamelift (1.1.0)
184
+ aws-sdk-core (~> 3)
185
+ aws-sigv4 (~> 1.0)
186
+ aws-sdk-glacier (1.5.0)
187
+ aws-sdk-core (~> 3)
188
+ aws-sigv4 (~> 1.0)
189
+ aws-sdk-glue (1.2.0)
190
+ aws-sdk-core (~> 3)
191
+ aws-sigv4 (~> 1.0)
192
+ aws-sdk-greengrass (1.2.0)
193
+ aws-sdk-core (~> 3)
194
+ aws-sigv4 (~> 1.0)
195
+ aws-sdk-guardduty (1.0.0)
196
+ aws-sdk-core (~> 3)
197
+ aws-sigv4 (~> 1.0)
198
+ aws-sdk-health (1.0.0)
199
+ aws-sdk-core (~> 3)
200
+ aws-sigv4 (~> 1.0)
201
+ aws-sdk-iam (1.3.0)
202
+ aws-sdk-core (~> 3)
203
+ aws-sigv4 (~> 1.0)
204
+ aws-sdk-importexport (1.0.0)
205
+ aws-sdk-core (~> 3)
206
+ aws-sigv2 (~> 1.0)
207
+ aws-sdk-inspector (1.1.0)
208
+ aws-sdk-core (~> 3)
209
+ aws-sigv4 (~> 1.0)
210
+ aws-sdk-iot (1.2.0)
211
+ aws-sdk-core (~> 3)
212
+ aws-sigv4 (~> 1.0)
213
+ aws-sdk-iotdataplane (1.0.0)
214
+ aws-sdk-core (~> 3)
215
+ aws-sigv4 (~> 1.0)
216
+ aws-sdk-iotjobsdataplane (1.0.0)
217
+ aws-sdk-core (~> 3)
218
+ aws-sigv4 (~> 1.0)
219
+ aws-sdk-kinesis (1.1.0)
220
+ aws-sdk-core (~> 3)
221
+ aws-sigv4 (~> 1.0)
222
+ aws-sdk-kinesisanalytics (1.1.0)
223
+ aws-sdk-core (~> 3)
224
+ aws-sigv4 (~> 1.0)
225
+ aws-sdk-kinesisvideo (1.0.0)
226
+ aws-sdk-core (~> 3)
227
+ aws-sigv4 (~> 1.0)
228
+ aws-sdk-kinesisvideoarchivedmedia (1.0.0)
229
+ aws-sdk-core (~> 3)
230
+ aws-sigv4 (~> 1.0)
231
+ aws-sdk-kinesisvideomedia (1.0.0)
232
+ aws-sdk-core (~> 3)
233
+ aws-sigv4 (~> 1.0)
234
+ aws-sdk-kms (1.3.0)
235
+ aws-sdk-core (~> 3)
236
+ aws-sigv4 (~> 1.0)
237
+ aws-sdk-lambda (1.2.0)
238
+ aws-sdk-core (~> 3)
239
+ aws-sigv4 (~> 1.0)
240
+ aws-sdk-lambdapreview (1.0.0)
241
+ aws-sdk-core (~> 3)
242
+ aws-sigv4 (~> 1.0)
243
+ aws-sdk-lex (1.2.0)
244
+ aws-sdk-core (~> 3)
245
+ aws-sigv4 (~> 1.0)
246
+ aws-sdk-lexmodelbuildingservice (1.3.0)
247
+ aws-sdk-core (~> 3)
248
+ aws-sigv4 (~> 1.0)
249
+ aws-sdk-lightsail (1.3.0)
250
+ aws-sdk-core (~> 3)
251
+ aws-sigv4 (~> 1.0)
252
+ aws-sdk-machinelearning (1.0.0)
253
+ aws-sdk-core (~> 3)
254
+ aws-sigv4 (~> 1.0)
255
+ aws-sdk-marketplacecommerceanalytics (1.0.0)
256
+ aws-sdk-core (~> 3)
257
+ aws-sigv4 (~> 1.0)
258
+ aws-sdk-marketplaceentitlementservice (1.0.0)
259
+ aws-sdk-core (~> 3)
260
+ aws-sigv4 (~> 1.0)
261
+ aws-sdk-marketplacemetering (1.0.0)
262
+ aws-sdk-core (~> 3)
263
+ aws-sigv4 (~> 1.0)
264
+ aws-sdk-mediaconvert (1.0.0)
265
+ aws-sdk-core (~> 3)
266
+ aws-sigv4 (~> 1.0)
267
+ aws-sdk-medialive (1.0.0)
268
+ aws-sdk-core (~> 3)
269
+ aws-sigv4 (~> 1.0)
270
+ aws-sdk-mediapackage (1.0.0)
271
+ aws-sdk-core (~> 3)
272
+ aws-sigv4 (~> 1.0)
273
+ aws-sdk-mediastore (1.0.0)
274
+ aws-sdk-core (~> 3)
275
+ aws-sigv4 (~> 1.0)
276
+ aws-sdk-mediastoredata (1.0.0)
277
+ aws-sdk-core (~> 3)
278
+ aws-sigv4 (~> 1.0)
279
+ aws-sdk-migrationhub (1.0.0)
280
+ aws-sdk-core (~> 3)
281
+ aws-sigv4 (~> 1.0)
282
+ aws-sdk-mobile (1.0.0)
283
+ aws-sdk-core (~> 3)
284
+ aws-sigv4 (~> 1.0)
285
+ aws-sdk-mq (1.0.0)
286
+ aws-sdk-core (~> 3)
287
+ aws-sigv4 (~> 1.0)
288
+ aws-sdk-mturk (1.1.0)
289
+ aws-sdk-core (~> 3)
290
+ aws-sigv4 (~> 1.0)
291
+ aws-sdk-opsworks (1.1.0)
292
+ aws-sdk-core (~> 3)
293
+ aws-sigv4 (~> 1.0)
294
+ aws-sdk-opsworkscm (1.2.0)
295
+ aws-sdk-core (~> 3)
296
+ aws-sigv4 (~> 1.0)
297
+ aws-sdk-organizations (1.7.0)
298
+ aws-sdk-core (~> 3)
299
+ aws-sigv4 (~> 1.0)
300
+ aws-sdk-pinpoint (1.2.0)
301
+ aws-sdk-core (~> 3)
302
+ aws-sigv4 (~> 1.0)
303
+ aws-sdk-polly (1.4.0)
304
+ aws-sdk-core (~> 3)
305
+ aws-sigv4 (~> 1.0)
306
+ aws-sdk-pricing (1.0.0)
307
+ aws-sdk-core (~> 3)
308
+ aws-sigv4 (~> 1.0)
309
+ aws-sdk-rds (1.8.0)
310
+ aws-sdk-core (~> 3)
311
+ aws-sigv4 (~> 1.0)
312
+ aws-sdk-redshift (1.1.0)
313
+ aws-sdk-core (~> 3)
314
+ aws-sigv4 (~> 1.0)
315
+ aws-sdk-rekognition (1.2.0)
316
+ aws-sdk-core (~> 3)
317
+ aws-sigv4 (~> 1.0)
318
+ aws-sdk-resourcegroups (1.0.0)
319
+ aws-sdk-core (~> 3)
320
+ aws-sigv4 (~> 1.0)
321
+ aws-sdk-resourcegroupstaggingapi (1.0.0)
322
+ aws-sdk-core (~> 3)
323
+ aws-sigv4 (~> 1.0)
324
+ aws-sdk-resources (3.10.0)
325
+ aws-sdk-acm (~> 1)
326
+ aws-sdk-alexaforbusiness (~> 1)
327
+ aws-sdk-apigateway (~> 1)
328
+ aws-sdk-applicationautoscaling (~> 1)
329
+ aws-sdk-applicationdiscoveryservice (~> 1)
330
+ aws-sdk-appstream (~> 1)
331
+ aws-sdk-appsync (~> 1)
332
+ aws-sdk-athena (~> 1)
333
+ aws-sdk-autoscaling (~> 1)
334
+ aws-sdk-batch (~> 1)
335
+ aws-sdk-budgets (~> 1)
336
+ aws-sdk-cloud9 (~> 1)
337
+ aws-sdk-clouddirectory (~> 1)
338
+ aws-sdk-cloudformation (~> 1)
339
+ aws-sdk-cloudfront (~> 1)
340
+ aws-sdk-cloudhsm (~> 1)
341
+ aws-sdk-cloudhsmv2 (~> 1)
342
+ aws-sdk-cloudsearch (~> 1)
343
+ aws-sdk-cloudsearchdomain (~> 1)
344
+ aws-sdk-cloudtrail (~> 1)
345
+ aws-sdk-cloudwatch (~> 1)
346
+ aws-sdk-cloudwatchevents (~> 1)
347
+ aws-sdk-cloudwatchlogs (~> 1)
348
+ aws-sdk-codebuild (~> 1)
349
+ aws-sdk-codecommit (~> 1)
350
+ aws-sdk-codedeploy (~> 1)
351
+ aws-sdk-codepipeline (~> 1)
352
+ aws-sdk-codestar (~> 1)
353
+ aws-sdk-cognitoidentity (~> 1)
354
+ aws-sdk-cognitoidentityprovider (~> 1)
355
+ aws-sdk-cognitosync (~> 1)
356
+ aws-sdk-comprehend (~> 1)
357
+ aws-sdk-configservice (~> 1)
358
+ aws-sdk-costandusagereportservice (~> 1)
359
+ aws-sdk-costexplorer (~> 1)
360
+ aws-sdk-databasemigrationservice (~> 1)
361
+ aws-sdk-datapipeline (~> 1)
362
+ aws-sdk-dax (~> 1)
363
+ aws-sdk-devicefarm (~> 1)
364
+ aws-sdk-directconnect (~> 1)
365
+ aws-sdk-directoryservice (~> 1)
366
+ aws-sdk-dynamodb (~> 1)
367
+ aws-sdk-dynamodbstreams (~> 1)
368
+ aws-sdk-ec2 (~> 1)
369
+ aws-sdk-ecr (~> 1)
370
+ aws-sdk-ecs (~> 1)
371
+ aws-sdk-efs (~> 1)
372
+ aws-sdk-elasticache (~> 1)
373
+ aws-sdk-elasticbeanstalk (~> 1)
374
+ aws-sdk-elasticloadbalancing (~> 1)
375
+ aws-sdk-elasticloadbalancingv2 (~> 1)
376
+ aws-sdk-elasticsearchservice (~> 1)
377
+ aws-sdk-elastictranscoder (~> 1)
378
+ aws-sdk-emr (~> 1)
379
+ aws-sdk-firehose (~> 1)
380
+ aws-sdk-gamelift (~> 1)
381
+ aws-sdk-glacier (~> 1)
382
+ aws-sdk-glue (~> 1)
383
+ aws-sdk-greengrass (~> 1)
384
+ aws-sdk-guardduty (~> 1)
385
+ aws-sdk-health (~> 1)
386
+ aws-sdk-iam (~> 1)
387
+ aws-sdk-importexport (~> 1)
388
+ aws-sdk-inspector (~> 1)
389
+ aws-sdk-iot (~> 1)
390
+ aws-sdk-iotdataplane (~> 1)
391
+ aws-sdk-iotjobsdataplane (~> 1)
392
+ aws-sdk-kinesis (~> 1)
393
+ aws-sdk-kinesisanalytics (~> 1)
394
+ aws-sdk-kinesisvideo (~> 1)
395
+ aws-sdk-kinesisvideoarchivedmedia (~> 1)
396
+ aws-sdk-kinesisvideomedia (~> 1)
397
+ aws-sdk-kms (~> 1)
398
+ aws-sdk-lambda (~> 1)
399
+ aws-sdk-lambdapreview (~> 1)
400
+ aws-sdk-lex (~> 1)
401
+ aws-sdk-lexmodelbuildingservice (~> 1)
402
+ aws-sdk-lightsail (~> 1)
403
+ aws-sdk-machinelearning (~> 1)
404
+ aws-sdk-marketplacecommerceanalytics (~> 1)
405
+ aws-sdk-marketplaceentitlementservice (~> 1)
406
+ aws-sdk-marketplacemetering (~> 1)
407
+ aws-sdk-mediaconvert (~> 1)
408
+ aws-sdk-medialive (~> 1)
409
+ aws-sdk-mediapackage (~> 1)
410
+ aws-sdk-mediastore (~> 1)
411
+ aws-sdk-mediastoredata (~> 1)
412
+ aws-sdk-migrationhub (~> 1)
413
+ aws-sdk-mobile (~> 1)
414
+ aws-sdk-mq (~> 1)
415
+ aws-sdk-mturk (~> 1)
416
+ aws-sdk-opsworks (~> 1)
417
+ aws-sdk-opsworkscm (~> 1)
418
+ aws-sdk-organizations (~> 1)
419
+ aws-sdk-pinpoint (~> 1)
420
+ aws-sdk-polly (~> 1)
421
+ aws-sdk-pricing (~> 1)
422
+ aws-sdk-rds (~> 1)
423
+ aws-sdk-redshift (~> 1)
424
+ aws-sdk-rekognition (~> 1)
425
+ aws-sdk-resourcegroups (~> 1)
426
+ aws-sdk-resourcegroupstaggingapi (~> 1)
427
+ aws-sdk-route53 (~> 1)
428
+ aws-sdk-route53domains (~> 1)
429
+ aws-sdk-s3 (~> 1)
430
+ aws-sdk-sagemaker (~> 1)
431
+ aws-sdk-sagemakerruntime (~> 1)
432
+ aws-sdk-serverlessapplicationrepository (~> 1)
433
+ aws-sdk-servicecatalog (~> 1)
434
+ aws-sdk-servicediscovery (~> 1)
435
+ aws-sdk-ses (~> 1)
436
+ aws-sdk-shield (~> 1)
437
+ aws-sdk-simpledb (~> 1)
438
+ aws-sdk-sms (~> 1)
439
+ aws-sdk-snowball (~> 1)
440
+ aws-sdk-sns (~> 1)
441
+ aws-sdk-sqs (~> 1)
442
+ aws-sdk-ssm (~> 1)
443
+ aws-sdk-states (~> 1)
444
+ aws-sdk-storagegateway (~> 1)
445
+ aws-sdk-support (~> 1)
446
+ aws-sdk-swf (~> 1)
447
+ aws-sdk-translate (~> 1)
448
+ aws-sdk-waf (~> 1)
449
+ aws-sdk-wafregional (~> 1)
450
+ aws-sdk-workdocs (~> 1)
451
+ aws-sdk-workmail (~> 1)
452
+ aws-sdk-workspaces (~> 1)
453
+ aws-sdk-xray (~> 1)
454
+ aws-sdk-route53 (1.5.0)
455
+ aws-sdk-core (~> 3)
456
+ aws-sigv4 (~> 1.0)
457
+ aws-sdk-route53domains (1.1.0)
458
+ aws-sdk-core (~> 3)
459
+ aws-sigv4 (~> 1.0)
460
+ aws-sdk-s3 (1.8.0)
461
+ aws-sdk-core (~> 3)
462
+ aws-sdk-kms (~> 1)
463
+ aws-sigv4 (~> 1.0)
464
+ aws-sdk-sagemaker (1.3.0)
465
+ aws-sdk-core (~> 3)
466
+ aws-sigv4 (~> 1.0)
467
+ aws-sdk-sagemakerruntime (1.0.0)
468
+ aws-sdk-core (~> 3)
469
+ aws-sigv4 (~> 1.0)
470
+ aws-sdk-serverlessapplicationrepository (1.0.0)
471
+ aws-sdk-core (~> 3)
472
+ aws-sigv4 (~> 1.0)
473
+ aws-sdk-servicecatalog (1.2.0)
474
+ aws-sdk-core (~> 3)
475
+ aws-sigv4 (~> 1.0)
476
+ aws-sdk-servicediscovery (1.0.0)
477
+ aws-sdk-core (~> 3)
478
+ aws-sigv4 (~> 1.0)
479
+ aws-sdk-ses (1.6.0)
480
+ aws-sdk-core (~> 3)
481
+ aws-sigv4 (~> 1.0)
482
+ aws-sdk-shield (1.1.0)
483
+ aws-sdk-core (~> 3)
484
+ aws-sigv4 (~> 1.0)
485
+ aws-sdk-simpledb (1.0.0)
486
+ aws-sdk-core (~> 3)
487
+ aws-sigv2 (~> 1.0)
488
+ aws-sdk-sms (1.0.0)
489
+ aws-sdk-core (~> 3)
490
+ aws-sigv4 (~> 1.0)
491
+ aws-sdk-snowball (1.1.0)
492
+ aws-sdk-core (~> 3)
493
+ aws-sigv4 (~> 1.0)
494
+ aws-sdk-sns (1.1.0)
495
+ aws-sdk-core (~> 3)
496
+ aws-sigv4 (~> 1.0)
497
+ aws-sdk-sqs (1.3.0)
498
+ aws-sdk-core (~> 3)
499
+ aws-sigv4 (~> 1.0)
500
+ aws-sdk-ssm (1.5.0)
501
+ aws-sdk-core (~> 3)
502
+ aws-sigv4 (~> 1.0)
503
+ aws-sdk-states (1.2.0)
504
+ aws-sdk-core (~> 3)
505
+ aws-sigv4 (~> 1.0)
506
+ aws-sdk-storagegateway (1.2.0)
507
+ aws-sdk-core (~> 3)
508
+ aws-sigv4 (~> 1.0)
509
+ aws-sdk-support (1.0.0)
510
+ aws-sdk-core (~> 3)
511
+ aws-sigv4 (~> 1.0)
512
+ aws-sdk-swf (1.0.0)
513
+ aws-sdk-core (~> 3)
514
+ aws-sigv4 (~> 1.0)
515
+ aws-sdk-translate (1.0.0)
516
+ aws-sdk-core (~> 3)
517
+ aws-sigv4 (~> 1.0)
518
+ aws-sdk-waf (1.3.0)
519
+ aws-sdk-core (~> 3)
520
+ aws-sigv4 (~> 1.0)
521
+ aws-sdk-wafregional (1.3.0)
522
+ aws-sdk-core (~> 3)
523
+ aws-sigv4 (~> 1.0)
524
+ aws-sdk-workdocs (1.1.0)
525
+ aws-sdk-core (~> 3)
526
+ aws-sigv4 (~> 1.0)
527
+ aws-sdk-workmail (1.0.0)
528
+ aws-sdk-core (~> 3)
529
+ aws-sigv4 (~> 1.0)
530
+ aws-sdk-workspaces (1.0.0)
531
+ aws-sdk-core (~> 3)
532
+ aws-sigv4 (~> 1.0)
533
+ aws-sdk-xray (1.1.0)
534
+ aws-sdk-core (~> 3)
535
+ aws-sigv4 (~> 1.0)
536
+ aws-sigv2 (1.0.1)
537
+ aws-sigv4 (1.0.2)
538
+ diff-lcs (1.3)
539
+ jmespath (1.3.1)
540
+ oj (3.3.9)
541
+ rake (10.5.0)
542
+ rspec (3.7.0)
543
+ rspec-core (~> 3.7.0)
544
+ rspec-expectations (~> 3.7.0)
545
+ rspec-mocks (~> 3.7.0)
546
+ rspec-core (3.7.0)
547
+ rspec-support (~> 3.7.0)
548
+ rspec-expectations (3.7.0)
549
+ diff-lcs (>= 1.2.0, < 2.0)
550
+ rspec-support (~> 3.7.0)
551
+ rspec-mocks (3.7.0)
552
+ diff-lcs (>= 1.2.0, < 2.0)
553
+ rspec-support (~> 3.7.0)
554
+ rspec-support (3.7.0)
555
+
556
+ PLATFORMS
557
+ ruby
558
+
559
+ DEPENDENCIES
560
+ bundler (~> 1.16)
561
+ rake (~> 10.0)
562
+ rspec (~> 3.0)
563
+ sentinel2_aws!
564
+
565
+ BUNDLED WITH
566
+ 1.16.0
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2017 Bryce Johnston
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
@@ -0,0 +1,90 @@
1
+ # sentinel2_aws
2
+
3
+ [![Gem Version](http://img.shields.io/gem/v/sentinel2_aws.svg)][gem]
4
+
5
+ [gem]: https://rubygems.org/gems/sentinel2_aws
6
+
7
+ Ruby library for parsing Sentinel-2 tile metadata and downloading tile data from [AWS](https://aws.amazon.com/public-datasets/sentinel-2/).
8
+ This is the primary mechanism for retrieving data for the [Sentinel-2 S3 Search API](https://github.com/beaorn/s2) project.
9
+
10
+ ## Installation
11
+
12
+ Add this line to your application's Gemfile:
13
+
14
+ ```ruby
15
+ gem 'sentinel2_aws'
16
+ ```
17
+
18
+ And then execute:
19
+
20
+ $ bundle
21
+
22
+ Or install it yourself as:
23
+
24
+ $ gem install sentinel2_aws
25
+
26
+ ## Usage
27
+
28
+ Initialize Sentinel2Aws::Client
29
+ ```ruby
30
+ client = Sentinel2Aws::Client.new("access_key_id", "secret_access_key")
31
+ ```
32
+
33
+ Get productInfo.json object paths for all products by date: `get_products("YYYY-MM-DD")`
34
+ ```ruby
35
+ products = client.get_products("2017-12-14")
36
+ # =>
37
+ # [
38
+ # "products/2017/12/14/S2B_MSIL1C_20171214T230119_N0206_R015_T58FCD_20171214T234716/productInfo.json",
39
+ # "products/2017/12/14/S2B_MSIL1C_20171214T230119_N0206_R015_T58FCE_20171214T234716/productInfo.json",
40
+ # ]
41
+ ```
42
+
43
+ Get product and tile metadata
44
+ ```ruby
45
+ # takes single productInfo.json path returned from get_products
46
+ product = "products/2017/12/15/S2B_MSIL1C_20171215T235729_N0206_R030_T57MVR_20171216T010047/productInfo.json"
47
+ metadata = client.get_product_info(product)
48
+ # =>
49
+ {
50
+ :name => "S2B_MSIL1C_20171215T235729_N0206_R030_T57MVR_20171216T010047",
51
+ :id => "eaedcad9-f287-41b8-944c-0cfed0b15db8",
52
+ :path => "products/2017/12/15/S2B_MSIL1C_20171215T235729_N0206_R030_T57MVR_20171216T010047",
53
+ :timestamp => "2017-12-15T23:57:29.027Z",
54
+ :datatake_identifier => "GS2B_20171215T235729_004060_N02.06",
55
+ :scihub_ingestion => "2017-12-16T01:46:29.112Z",
56
+ :s3_ingestion => "2017-12-16T01:50:49.375Z",
57
+ :tiles=>
58
+ [
59
+ {
60
+ :path => "tiles/57/M/VR/2017/12/15/0",
61
+ :timestamp => "2017-12-15T23:57:27.460Z",
62
+ :utm_zone => 57,
63
+ :latitude_band => "M",
64
+ :grid_square => "VR",
65
+ :epsg => "32757",
66
+ :data_coverage_percentage => 31.21,
67
+ :cloudy_pixel_percentage => 13.47
68
+ }
69
+ ]
70
+ }
71
+ ```
72
+
73
+ Download tile data: `download_tile_data(s3 tile path, file, output path)`
74
+ ```ruby
75
+ client.download_tile_data("tiles/57/M/VR/2017/12/15/0", "B01.jp2", "/path/that/exists")
76
+ ```
77
+
78
+ ## Development
79
+
80
+ After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
81
+
82
+ To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
83
+
84
+ ## Contributing
85
+
86
+ Bug reports and pull requests are welcome on GitHub at https://github.com/beaorn/sentinel2_aws.
87
+
88
+ ## License
89
+
90
+ The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
@@ -0,0 +1,6 @@
1
+ require "bundler/gem_tasks"
2
+ require "rspec/core/rake_task"
3
+
4
+ RSpec::Core::RakeTask.new(:spec)
5
+
6
+ task :default => :spec
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require "sentinel2_aws"
5
+
6
+ # You can add fixtures and/or initialization code here to make experimenting
7
+ # with your gem easier. You can also use a different console, if you like.
8
+
9
+ # (If you use this, don't forget to add pry to your Gemfile!)
10
+ # require "pry"
11
+ # Pry.start
12
+
13
+ require "irb"
14
+ IRB.start(__FILE__)
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+ set -vx
5
+
6
+ bundle install
7
+
8
+ # Do any other automated setup that you need to do here
@@ -0,0 +1,8 @@
1
+ require 'oj'
2
+ require 'aws-sdk'
3
+
4
+ require "sentinel2_aws/version"
5
+ require "sentinel2_aws/client"
6
+
7
+ module Sentinel2Aws
8
+ end
@@ -0,0 +1,129 @@
1
+ module Sentinel2Aws
2
+ class Client
3
+ S3_REGION = 'eu-central-1'
4
+ S3_BUCKET = 'sentinel-s2-l1c'
5
+
6
+ def initialize(akid, secret)
7
+ Aws.config.update({
8
+ credentials: Aws::Credentials.new(akid, secret),
9
+ region: S3_REGION
10
+ })
11
+ @s3_resource = Aws::S3::Resource.new
12
+ @s3_client = Aws::S3::Client.new
13
+ @directory = Dir.mktmpdir
14
+ end
15
+
16
+ def parse_date(date)
17
+ y, m, d = date.split('-')
18
+ y, m, d = y.to_i, m.to_i, d.to_i
19
+ if Date.valid_date? y, m, d
20
+ return [y, m, d]
21
+ else
22
+ return nil
23
+ end
24
+ end
25
+
26
+ # date format: "YYYY-MM-DD"
27
+ def get_products(date)
28
+ pdate = parse_date(date)
29
+ unless pdate.nil?
30
+ year, month, day = pdate
31
+ prefix = "products/#{year}/#{month}/#{day}/"
32
+ folder = "#{year}_#{month}_#{day}"
33
+ objects = []
34
+
35
+ @s3_client.list_objects(bucket: S3_BUCKET, prefix: prefix).each do |response|
36
+ response.contents.each do |object|
37
+ product_str = object.key.split(prefix)
38
+ product = product_str[1].split('/')
39
+ if product[1] == 'productInfo.json'
40
+ objects << object.key
41
+ end
42
+ end
43
+ end
44
+
45
+ return objects
46
+ else
47
+ return []
48
+ end
49
+ end
50
+
51
+ def get_product_info(product)
52
+ product_str = product.split('/')
53
+ folder = "#{product_str[1]}_#{product_str[2]}_#{product_str[3]}"
54
+ filepath = download_file(product, folder, "#{product_str[4]}.json")
55
+ unless filepath.nil?
56
+ file = File.read(filepath)
57
+ product_info = Oj.load(file)
58
+ FileUtils.remove_entry(filepath)
59
+ tiles = []
60
+ product_info["tiles"].each do |tile|
61
+ tile_path = tile["path"]
62
+ tile_name = tile_path.gsub("/", "_")
63
+ tile = "#{tile["path"]}/tileInfo.json"
64
+ tile_filepath = download_file(tile, folder, "#{tile_name}.json")
65
+ unless tile_filepath.nil?
66
+ tile_file = File.read(tile_filepath)
67
+ tile_info = Oj.load(tile_file)
68
+ FileUtils.remove_entry(tile_filepath)
69
+
70
+ epsg_str = tile_info["tileGeometry"]["crs"]["properties"]["name"].split(':')
71
+
72
+ tile_metadata = {
73
+ path: tile_info["path"],
74
+ timestamp: tile_info["timestamp"],
75
+ utm_zone: tile_info["utmZone"],
76
+ latitude_band: tile_info["latitudeBand"],
77
+ grid_square: tile_info["gridSquare"],
78
+ epsg: epsg_str[-1],
79
+ data_coverage_percentage: tile_info["dataCoveragePercentage"],
80
+ cloudy_pixel_percentage: tile_info["cloudyPixelPercentage"]
81
+ }
82
+ tiles << tile_metadata
83
+ end
84
+ end
85
+
86
+ metadata = {
87
+ name: product_info["name"],
88
+ id: product_info["id"],
89
+ path: product_info["path"],
90
+ timestamp: product_info["timestamp"],
91
+ datatake_identifier: product_info["datatakeIdentifier"],
92
+ scihub_ingestion: product_info["sciHubIngestion"],
93
+ s3_ingestion: product_info["s3Ingestion"],
94
+ tiles: tiles
95
+ }
96
+ end
97
+ end
98
+
99
+ def download_file(s3_file, folder, filename)
100
+ if @s3_resource.bucket(S3_BUCKET).object(s3_file).exists?
101
+ base_dir = "#{@directory}/#{folder}"
102
+ Dir.mkdir(base_dir) unless File.exists?(base_dir)
103
+ filepath = "#{base_dir}/#{filename}"
104
+ obj = @s3_resource.bucket(S3_BUCKET).object(s3_file)
105
+ obj.get(response_target: filepath)
106
+ return filepath
107
+ else
108
+ return nil
109
+ end
110
+ end
111
+
112
+ def download_tile_data(tile_path, filename, output_path)
113
+ s3_file = "#{tile_path}/#{filename}"
114
+ if @s3_resource.bucket(S3_BUCKET).object(s3_file).exists?
115
+ filepath = "#{output_path}/#{filename}"
116
+ obj = @s3_resource.bucket(S3_BUCKET).object(s3_file)
117
+ obj.get(response_target: filepath)
118
+ return filepath
119
+ else
120
+ return nil
121
+ end
122
+ end
123
+
124
+ def remove_directory
125
+ FileUtils.remove_dir(@directory)
126
+ end
127
+
128
+ end
129
+ end
@@ -0,0 +1,3 @@
1
+ module Sentinel2Aws
2
+ VERSION = "0.3.0"
3
+ end
@@ -0,0 +1,30 @@
1
+
2
+ lib = File.expand_path("../lib", __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require "sentinel2_aws/version"
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "sentinel2_aws"
8
+ spec.version = Sentinel2Aws::VERSION
9
+ spec.authors = ["Bryce Johnston"]
10
+ spec.email = ["bryce@agdeveloper.com"]
11
+
12
+ spec.summary = %q{Sentinel-2 metadata parser and downloader from AWS}
13
+ spec.description = %q{Sentinel-2 metadata parser and downloader from AWS}
14
+ spec.homepage = "https://github.com/beaorn/sentinel2_aws"
15
+ spec.license = "MIT"
16
+
17
+ spec.files = `git ls-files -z`.split("\x0").reject do |f|
18
+ f.match(%r{^(test|spec|features)/})
19
+ end
20
+ spec.bindir = "exe"
21
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
22
+ spec.require_paths = ["lib"]
23
+
24
+ spec.add_dependency "oj", "< 4"
25
+ spec.add_dependency "aws-sdk", "~> 3"
26
+
27
+ spec.add_development_dependency "bundler", "~> 1.16"
28
+ spec.add_development_dependency "rake", "~> 10.0"
29
+ spec.add_development_dependency "rspec", "~> 3.0"
30
+ end
metadata ADDED
@@ -0,0 +1,128 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: sentinel2_aws
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.3.0
5
+ platform: ruby
6
+ authors:
7
+ - Bryce Johnston
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2017-12-18 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: oj
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "<"
18
+ - !ruby/object:Gem::Version
19
+ version: '4'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "<"
25
+ - !ruby/object:Gem::Version
26
+ version: '4'
27
+ - !ruby/object:Gem::Dependency
28
+ name: aws-sdk
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '3'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '3'
41
+ - !ruby/object:Gem::Dependency
42
+ name: bundler
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '1.16'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '1.16'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rake
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '10.0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '10.0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rspec
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '3.0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '3.0'
83
+ description: Sentinel-2 metadata parser and downloader from AWS
84
+ email:
85
+ - bryce@agdeveloper.com
86
+ executables: []
87
+ extensions: []
88
+ extra_rdoc_files: []
89
+ files:
90
+ - ".gitignore"
91
+ - ".rspec"
92
+ - ".travis.yml"
93
+ - Gemfile
94
+ - Gemfile.lock
95
+ - LICENSE.txt
96
+ - README.md
97
+ - Rakefile
98
+ - bin/console
99
+ - bin/setup
100
+ - lib/sentinel2_aws.rb
101
+ - lib/sentinel2_aws/client.rb
102
+ - lib/sentinel2_aws/version.rb
103
+ - sentinel2_aws.gemspec
104
+ homepage: https://github.com/beaorn/sentinel2_aws
105
+ licenses:
106
+ - MIT
107
+ metadata: {}
108
+ post_install_message:
109
+ rdoc_options: []
110
+ require_paths:
111
+ - lib
112
+ required_ruby_version: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - ">="
115
+ - !ruby/object:Gem::Version
116
+ version: '0'
117
+ required_rubygems_version: !ruby/object:Gem::Requirement
118
+ requirements:
119
+ - - ">="
120
+ - !ruby/object:Gem::Version
121
+ version: '0'
122
+ requirements: []
123
+ rubyforge_project:
124
+ rubygems_version: 2.7.3
125
+ signing_key:
126
+ specification_version: 4
127
+ summary: Sentinel-2 metadata parser and downloader from AWS
128
+ test_files: []