Skip to content

Commit 22ba555

Browse files
authored
Merge pull request #186 from sentinel-hub/feature/new-landsat-datasets
Feature/new landsat datasets
2 parents 68d2bf4 + 69de5c1 commit 22ba555

23 files changed

+2968
-2
lines changed

src/dataimport/AirbusDataProvider.ts

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
import { TPDProvider, TPDISearchParams } from './const';
2+
import { AbstractTPDProvider } from './TPDProvider';
3+
4+
export class AirbusDataProvider extends AbstractTPDProvider {
5+
public constructor() {
6+
super();
7+
this.provider = TPDProvider.AIRBUS;
8+
}
9+
10+
protected getAdditionalSearchParams(params: TPDISearchParams): any {
11+
const data: any = {};
12+
13+
//constellation is a required parameter
14+
if (!params.constellation) {
15+
throw new Error('Parameter constellation must be specified');
16+
}
17+
data.constellation = params.constellation;
18+
19+
//datafilter
20+
const dataFilter: any = {};
21+
22+
if (!params.fromTime) {
23+
throw new Error('Parameter fromTime must be specified');
24+
}
25+
26+
if (!params.toTime) {
27+
throw new Error('Parameter toTime must be specified');
28+
}
29+
30+
dataFilter.timeRange = {
31+
from: params.fromTime.toISOString(),
32+
to: params.toTime.toISOString(),
33+
};
34+
35+
if (!isNaN(params.maxCloudCoverage)) {
36+
dataFilter.maxCloudCoverage = params.maxCloudCoverage;
37+
}
38+
39+
if (!!params.processingLevel) {
40+
dataFilter.processingLevel = params.processingLevel;
41+
}
42+
43+
if (!isNaN(params.maxSnowCoverage)) {
44+
dataFilter.maxSnowCoverage = params.maxSnowCoverage;
45+
}
46+
47+
if (!isNaN(params.maxIncidenceAngle)) {
48+
dataFilter.maxIncidenceAngle = params.maxIncidenceAngle;
49+
}
50+
51+
if (!!params.expiredFromTime && !!params.expiredToTime) {
52+
dataFilter.expirationDate = {
53+
from: params.expiredFromTime.toISOString(),
54+
to: params.expiredToTime.toISOString(),
55+
};
56+
}
57+
58+
data.dataFilter = dataFilter;
59+
60+
return { data: [data] };
61+
}
62+
63+
protected getAdditionalOrderParams(items: string[], params: TPDISearchParams): any {
64+
const input = this.getSearchPayload(params);
65+
if (!!items && items.length) {
66+
const dataObject = input.data[0];
67+
dataObject.products = items.map(item => ({ id: item }));
68+
delete dataObject.dataFilter;
69+
}
70+
return input;
71+
}
72+
}

src/dataimport/MaxarDataProvider.ts

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
import { TPDProvider, TPDISearchParams, MaxarProductBands } from './const';
2+
import { AbstractTPDProvider } from './TPDProvider';
3+
4+
export class MaxarDataProvider extends AbstractTPDProvider {
5+
public constructor() {
6+
super();
7+
this.provider = TPDProvider.MAXAR;
8+
}
9+
10+
public addSearchPagination(): void {}
11+
12+
protected getAdditionalSearchParams(params: TPDISearchParams): any {
13+
const data: any = {};
14+
15+
//productBands is a required parameter with value of MaxarProductBands
16+
data.productBands = MaxarProductBands;
17+
18+
//datafilter
19+
const dataFilter: any = {};
20+
21+
if (!params.fromTime) {
22+
throw new Error('Parameter fromTime must be specified');
23+
}
24+
25+
if (!params.toTime) {
26+
throw new Error('Parameter toTime must be specified');
27+
}
28+
29+
dataFilter.timeRange = {
30+
from: params.fromTime.toISOString(),
31+
to: params.toTime.toISOString(),
32+
};
33+
34+
if (!isNaN(params.maxCloudCoverage)) {
35+
dataFilter.maxCloudCoverage = params.maxCloudCoverage;
36+
}
37+
38+
if (!isNaN(params.minOffNadir)) {
39+
dataFilter.minOffNadir = params.minOffNadir;
40+
}
41+
42+
if (!isNaN(params.maxOffNadir)) {
43+
dataFilter.maxOffNadir = params.maxOffNadir;
44+
}
45+
46+
if (!isNaN(params.minSunElevation)) {
47+
dataFilter.minSunElevation = params.minSunElevation;
48+
}
49+
50+
if (!isNaN(params.maxSunElevation)) {
51+
dataFilter.maxSunElevation = params.maxSunElevation;
52+
}
53+
54+
if (!!params.sensor) {
55+
dataFilter.sensor = params.sensor;
56+
}
57+
58+
data.dataFilter = dataFilter;
59+
60+
return { data: [data] };
61+
}
62+
63+
protected getAdditionalOrderParams(items: string[], params: TPDISearchParams): any {
64+
const input = this.getSearchPayload(params);
65+
if (!!items && items.length) {
66+
const dataObject = input.data[0];
67+
dataObject.selectedImages = items;
68+
delete dataObject.dataFilter;
69+
}
70+
return input;
71+
}
72+
}

src/dataimport/PlanetDataProvider.ts

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
import { TPDProvider, TPDISearchParams, PlanetItemType } from './const';
2+
import { AbstractTPDProvider } from './TPDProvider';
3+
4+
export class PlanetDataProvider extends AbstractTPDProvider {
5+
public constructor() {
6+
super();
7+
this.provider = TPDProvider.PLANET;
8+
}
9+
10+
protected getAdditionalSearchParams(params: TPDISearchParams): any {
11+
const data: any = {};
12+
13+
//itemType is a required parameter witl value of PlanetItemType
14+
15+
data.itemType = PlanetItemType;
16+
17+
//productBundle
18+
19+
if (!!params.productBundle) {
20+
data.productBundle = params.productBundle;
21+
}
22+
23+
//datafilter
24+
const dataFilter: any = {};
25+
26+
if (!params.fromTime) {
27+
throw new Error('Parameter fromTime must be specified');
28+
}
29+
30+
if (!params.toTime) {
31+
throw new Error('Parameter toTime must be specified');
32+
}
33+
34+
dataFilter.timeRange = {
35+
from: params.fromTime.toISOString(),
36+
to: params.toTime.toISOString(),
37+
};
38+
39+
if (!isNaN(params.maxCloudCoverage)) {
40+
dataFilter.maxCloudCoverage = params.maxCloudCoverage;
41+
}
42+
43+
if (!!params.nativeFilter) {
44+
dataFilter.nativeFilter = params.nativeFilter;
45+
}
46+
47+
data.dataFilter = dataFilter;
48+
49+
return {
50+
planetApiKey: params.planetApiKey,
51+
data: [data],
52+
};
53+
}
54+
55+
protected getAdditionalOrderParams(items: string[], params: TPDISearchParams): any {
56+
const input = this.getSearchPayload(params);
57+
const dataObject = input.data[0];
58+
59+
if (!!params.harmonizeTo) {
60+
dataObject.harmonizeTo = params.harmonizeTo;
61+
}
62+
63+
if (!!items && items.length) {
64+
dataObject.itemIds = items;
65+
delete dataObject.dataFilter;
66+
}
67+
return input;
68+
}
69+
}

0 commit comments

Comments
 (0)