@golemio/chmu 1.1.1-dev.2674913750 → 1.2.0
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/dist/integration-engine/data-access/MeasurementsRepository.js +1 -1
- package/dist/integration-engine/data-access/MeasurementsRepository.js.map +1 -1
- package/dist/integration-engine/ioc/Di.js +0 -12
- package/dist/integration-engine/ioc/Di.js.map +1 -1
- package/dist/integration-engine/ioc/ModuleContainerToken.d.ts +0 -6
- package/dist/integration-engine/ioc/ModuleContainerToken.js +0 -8
- package/dist/integration-engine/ioc/ModuleContainerToken.js.map +1 -1
- package/dist/integration-engine/transformations/MeasurementsTransformation.js +0 -18
- package/dist/integration-engine/transformations/MeasurementsTransformation.js.map +1 -1
- package/dist/integration-engine/workers/ChmuWorker.js +0 -2
- package/dist/integration-engine/workers/ChmuWorker.js.map +1 -1
- package/dist/integration-engine/workers/tasks/DownloadMeasurementsTask.js +2 -2
- package/dist/integration-engine/workers/tasks/DownloadMeasurementsTask.js.map +1 -1
- package/dist/schema-definitions/definitions/interfaces/IMeasurementDto.d.ts +0 -18
- package/dist/schema-definitions/definitions/models/MeasurementModel.d.ts +0 -18
- package/dist/schema-definitions/definitions/models/MeasurementModel.js +1 -37
- package/dist/schema-definitions/definitions/models/MeasurementModel.js.map +1 -1
- package/docs/asyncapi.yaml +3 -78
- package/docs/implementation_documentation.md +23 -114
- package/package.json +4 -4
- package/db/migrations/postgresql/20260619120000-opendata-columns.js +0 -49
- package/db/migrations/postgresql/sqls/20260619120000-opendata-columns-down.sql +0 -36
- package/db/migrations/postgresql/sqls/20260619120000-opendata-columns-up.sql +0 -40
- package/dist/integration-engine/data-access/StationsRepository.d.ts +0 -8
- package/dist/integration-engine/data-access/StationsRepository.js +0 -57
- package/dist/integration-engine/data-access/StationsRepository.js.map +0 -1
- package/dist/integration-engine/datasources/AbstractOpendataDatasource.d.ts +0 -19
- package/dist/integration-engine/datasources/AbstractOpendataDatasource.js +0 -47
- package/dist/integration-engine/datasources/AbstractOpendataDatasource.js.map +0 -1
- package/dist/integration-engine/datasources/OpendataDatasource.d.ts +0 -8
- package/dist/integration-engine/datasources/OpendataDatasource.js +0 -37
- package/dist/integration-engine/datasources/OpendataDatasource.js.map +0 -1
- package/dist/integration-engine/datasources/OpendataHistoricalDatasource.d.ts +0 -8
- package/dist/integration-engine/datasources/OpendataHistoricalDatasource.js +0 -38
- package/dist/integration-engine/datasources/OpendataHistoricalDatasource.js.map +0 -1
- package/dist/integration-engine/transformations/OpendataMeasurementsTransformation.d.ts +0 -15
- package/dist/integration-engine/transformations/OpendataMeasurementsTransformation.js +0 -128
- package/dist/integration-engine/transformations/OpendataMeasurementsTransformation.js.map +0 -1
- package/dist/integration-engine/workers/interfaces/IDownloadOpendataHistoricalMessage.d.ts +0 -10
- package/dist/integration-engine/workers/interfaces/IDownloadOpendataHistoricalMessage.js +0 -3
- package/dist/integration-engine/workers/interfaces/IDownloadOpendataHistoricalMessage.js.map +0 -1
- package/dist/integration-engine/workers/interfaces/IDownloadOpendataMessage.d.ts +0 -8
- package/dist/integration-engine/workers/interfaces/IDownloadOpendataMessage.js +0 -3
- package/dist/integration-engine/workers/interfaces/IDownloadOpendataMessage.js.map +0 -1
- package/dist/integration-engine/workers/tasks/DownloadOpendataHistoricalMeasurementsTask.d.ts +0 -26
- package/dist/integration-engine/workers/tasks/DownloadOpendataHistoricalMeasurementsTask.js +0 -149
- package/dist/integration-engine/workers/tasks/DownloadOpendataHistoricalMeasurementsTask.js.map +0 -1
- package/dist/integration-engine/workers/tasks/DownloadOpendataHistoricalMessageSchema.d.ts +0 -7
- package/dist/integration-engine/workers/tasks/DownloadOpendataHistoricalMessageSchema.js +0 -40
- package/dist/integration-engine/workers/tasks/DownloadOpendataHistoricalMessageSchema.js.map +0 -1
- package/dist/integration-engine/workers/tasks/DownloadOpendataMeasurementsTask.d.ts +0 -22
- package/dist/integration-engine/workers/tasks/DownloadOpendataMeasurementsTask.js +0 -112
- package/dist/integration-engine/workers/tasks/DownloadOpendataMeasurementsTask.js.map +0 -1
- package/dist/integration-engine/workers/tasks/DownloadOpendataMessageSchema.d.ts +0 -6
- package/dist/integration-engine/workers/tasks/DownloadOpendataMessageSchema.js +0 -33
- package/dist/integration-engine/workers/tasks/DownloadOpendataMessageSchema.js.map +0 -1
- package/dist/schema-definitions/datasources/OpendataSchemaProvider.d.ts +0 -55
- package/dist/schema-definitions/datasources/OpendataSchemaProvider.js +0 -47
- package/dist/schema-definitions/datasources/OpendataSchemaProvider.js.map +0 -1
- package/dist/schema-definitions/datasources/interfaces/IInputOpendataRecord.d.ts +0 -15
- package/dist/schema-definitions/datasources/interfaces/IInputOpendataRecord.js +0 -3
- package/dist/schema-definitions/datasources/interfaces/IInputOpendataRecord.js.map +0 -1
|
@@ -31,7 +31,7 @@ let MeasurementsRepository = class MeasurementsRepository extends integration_en
|
|
|
31
31
|
};
|
|
32
32
|
this.getUpdateAttributes = () => {
|
|
33
33
|
return Object.keys(MeasurementModel_1.MeasurementModel.attributeModel)
|
|
34
|
-
.filter((att) => !["vendor_id", "pick_at"
|
|
34
|
+
.filter((att) => !["vendor_id", "pick_at"].includes(att))
|
|
35
35
|
.concat("updated_at");
|
|
36
36
|
};
|
|
37
37
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MeasurementsRepository.js","sourceRoot":"","sources":["../../../src/integration-engine/data-access/MeasurementsRepository.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,8EAA8E;AAC9E,mFAAkF;AAClF,iEAAgE;AAChE,uCAAwC;AAExC,
|
|
1
|
+
{"version":3,"file":"MeasurementsRepository.js","sourceRoot":"","sources":["../../../src/integration-engine/data-access/MeasurementsRepository.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,8EAA8E;AAC9E,mFAAkF;AAClF,iEAAgE;AAChE,uCAAwC;AAExC,mGAAgG;AAGzF,IAAM,sBAAsB,GAA5B,MAAM,sBAAuB,SAAQ,kCAAa;IACrD;QACI,KAAK,CACD,4BAA4B,EAC5B;YACI,yBAAyB,EAAE,mCAAgB,CAAC,cAAc;YAC1D,WAAW,EAAE,cAAc;YAC3B,QAAQ,EAAE,mBAAW;YACrB,UAAU,EAAE,gBAAgB;SAC/B,EACD,IAAI,uCAAmB,CAAC,2BAA2B,EAAE,mCAAgB,CAAC,UAAU,CAAC,CACpF,CAAC;QAGC,eAAU,GAAG,KAAK,EAAE,IAAuB,EAAE,EAAE;YAClD,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC1B,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,CAAmB,IAAI,EAAE;gBACzD,iBAAiB,EAAE,IAAI,CAAC,mBAAmB,EAAE;aAChD,CAAC,CAAC;QACP,CAAC,CAAC;QAEM,wBAAmB,GAAG,GAAG,EAAE;YAC/B,OAAO,MAAM,CAAC,IAAI,CAAC,mCAAgB,CAAC,cAAc,CAAC;iBAC9C,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;iBACxD,MAAM,CAAC,YAAY,CAAiC,CAAC;QAC9D,CAAC,CAAC;IAbF,CAAC;CAcJ,CAAA;AA1BY,wDAAsB;iCAAtB,sBAAsB;IADlC,IAAA,qBAAU,GAAE;;GACA,sBAAsB,CA0BlC"}
|
|
@@ -5,16 +5,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.ChmuContainer = void 0;
|
|
7
7
|
const MeasurementsRepository_1 = require("../data-access/MeasurementsRepository");
|
|
8
|
-
const StationsRepository_1 = require("../data-access/StationsRepository");
|
|
9
8
|
const Di_1 = require("@golemio/core/dist/integration-engine/ioc/Di");
|
|
10
9
|
const ChmuDatasource_1 = __importDefault(require("../datasources/ChmuDatasource"));
|
|
11
|
-
const OpendataDatasource_1 = __importDefault(require("../datasources/OpendataDatasource"));
|
|
12
|
-
const OpendataHistoricalDatasource_1 = __importDefault(require("../datasources/OpendataHistoricalDatasource"));
|
|
13
10
|
const MeasurementsTransformation_1 = require("../transformations/MeasurementsTransformation");
|
|
14
|
-
const OpendataMeasurementsTransformation_1 = require("../transformations/OpendataMeasurementsTransformation");
|
|
15
11
|
const DownloadMeasurementsTask_1 = __importDefault(require("../workers/tasks/DownloadMeasurementsTask"));
|
|
16
|
-
const DownloadOpendataMeasurementsTask_1 = __importDefault(require("../workers/tasks/DownloadOpendataMeasurementsTask"));
|
|
17
|
-
const DownloadOpendataHistoricalMeasurementsTask_1 = __importDefault(require("../workers/tasks/DownloadOpendataHistoricalMeasurementsTask"));
|
|
18
12
|
const ModuleContainerToken_1 = require("./ModuleContainerToken");
|
|
19
13
|
//#region Initialization
|
|
20
14
|
const ChmuContainer = Di_1.IntegrationEngineContainer.createChildContainer();
|
|
@@ -22,19 +16,13 @@ exports.ChmuContainer = ChmuContainer;
|
|
|
22
16
|
//#endregion
|
|
23
17
|
//#region Datasources
|
|
24
18
|
ChmuContainer.registerSingleton(ModuleContainerToken_1.ModuleContainerToken.ChmuDatasource, ChmuDatasource_1.default);
|
|
25
|
-
ChmuContainer.registerSingleton(ModuleContainerToken_1.ModuleContainerToken.OpendataDatasource, OpendataDatasource_1.default);
|
|
26
|
-
ChmuContainer.registerSingleton(ModuleContainerToken_1.ModuleContainerToken.OpendataHistoricalDatasource, OpendataHistoricalDatasource_1.default);
|
|
27
19
|
//#endregion
|
|
28
20
|
//#region Transformations
|
|
29
21
|
ChmuContainer.registerSingleton(ModuleContainerToken_1.ModuleContainerToken.MeasurementsTransformation, MeasurementsTransformation_1.MeasurementsTransformation);
|
|
30
|
-
ChmuContainer.registerSingleton(ModuleContainerToken_1.ModuleContainerToken.OpendataMeasurementsTransformation, OpendataMeasurementsTransformation_1.OpendataMeasurementsTransformation);
|
|
31
22
|
//#endregion
|
|
32
23
|
//#region Repositories
|
|
33
24
|
ChmuContainer.registerSingleton(ModuleContainerToken_1.ModuleContainerToken.MeasurementsRepository, MeasurementsRepository_1.MeasurementsRepository);
|
|
34
|
-
ChmuContainer.registerSingleton(ModuleContainerToken_1.ModuleContainerToken.StationsRepository, StationsRepository_1.StationsRepository);
|
|
35
25
|
//#endregion
|
|
36
26
|
//#region WorkerTasks
|
|
37
27
|
ChmuContainer.registerSingleton(ModuleContainerToken_1.ModuleContainerToken.DownloadMeasurementsTask, DownloadMeasurementsTask_1.default);
|
|
38
|
-
ChmuContainer.registerSingleton(ModuleContainerToken_1.ModuleContainerToken.DownloadOpendataMeasurementsTask, DownloadOpendataMeasurementsTask_1.default);
|
|
39
|
-
ChmuContainer.registerSingleton(ModuleContainerToken_1.ModuleContainerToken.DownloadOpendataHistoricalMeasurementsTask, DownloadOpendataHistoricalMeasurementsTask_1.default);
|
|
40
28
|
//# sourceMappingURL=Di.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Di.js","sourceRoot":"","sources":["../../../src/integration-engine/ioc/Di.ts"],"names":[],"mappings":";;;;;;AAAA,kFAAgF;AAChF,
|
|
1
|
+
{"version":3,"file":"Di.js","sourceRoot":"","sources":["../../../src/integration-engine/ioc/Di.ts"],"names":[],"mappings":";;;;;;AAAA,kFAAgF;AAChF,qEAA0F;AAC1F,mFAA4D;AAC5D,8FAA4F;AAC5F,yGAAkF;AAElF,iEAA8D;AAE9D,wBAAwB;AACxB,MAAM,aAAa,GAAwB,+BAA0B,CAAC,oBAAoB,EAAE,CAAC;AAmBpF,sCAAa;AAlBtB,YAAY;AAEZ,qBAAqB;AACrB,aAAa,CAAC,iBAAiB,CAAC,2CAAoB,CAAC,cAAc,EAAE,wBAAc,CAAC,CAAC;AACrF,YAAY;AAEZ,yBAAyB;AACzB,aAAa,CAAC,iBAAiB,CAAC,2CAAoB,CAAC,0BAA0B,EAAE,uDAA0B,CAAC,CAAC;AAC7G,YAAY;AAEZ,sBAAsB;AACtB,aAAa,CAAC,iBAAiB,CAAC,2CAAoB,CAAC,sBAAsB,EAAE,+CAAsB,CAAC,CAAC;AACrG,YAAY;AAEZ,qBAAqB;AACrB,aAAa,CAAC,iBAAiB,CAAC,2CAAoB,CAAC,wBAAwB,EAAE,kCAAwB,CAAC,CAAC"}
|
|
@@ -3,11 +3,5 @@ declare const ModuleContainerToken: {
|
|
|
3
3
|
MeasurementsRepository: symbol;
|
|
4
4
|
MeasurementsTransformation: symbol;
|
|
5
5
|
DownloadMeasurementsTask: symbol;
|
|
6
|
-
StationsRepository: symbol;
|
|
7
|
-
OpendataDatasource: symbol;
|
|
8
|
-
OpendataMeasurementsTransformation: symbol;
|
|
9
|
-
DownloadOpendataMeasurementsTask: symbol;
|
|
10
|
-
OpendataHistoricalDatasource: symbol;
|
|
11
|
-
DownloadOpendataHistoricalMeasurementsTask: symbol;
|
|
12
6
|
};
|
|
13
7
|
export { ModuleContainerToken };
|
|
@@ -6,14 +6,6 @@ const ModuleContainerToken = {
|
|
|
6
6
|
MeasurementsRepository: Symbol(),
|
|
7
7
|
MeasurementsTransformation: Symbol(),
|
|
8
8
|
DownloadMeasurementsTask: Symbol(),
|
|
9
|
-
// opendata pipeline
|
|
10
|
-
StationsRepository: Symbol(),
|
|
11
|
-
OpendataDatasource: Symbol(),
|
|
12
|
-
OpendataMeasurementsTransformation: Symbol(),
|
|
13
|
-
DownloadOpendataMeasurementsTask: Symbol(),
|
|
14
|
-
// opendata historical
|
|
15
|
-
OpendataHistoricalDatasource: Symbol(),
|
|
16
|
-
DownloadOpendataHistoricalMeasurementsTask: Symbol(),
|
|
17
9
|
};
|
|
18
10
|
exports.ModuleContainerToken = ModuleContainerToken;
|
|
19
11
|
//# sourceMappingURL=ModuleContainerToken.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModuleContainerToken.js","sourceRoot":"","sources":["../../../src/integration-engine/ioc/ModuleContainerToken.ts"],"names":[],"mappings":";;;AAAA,MAAM,oBAAoB,GAAG;IACzB,cAAc,EAAE,MAAM,EAAE;IACxB,sBAAsB,EAAE,MAAM,EAAE;IAChC,0BAA0B,EAAE,MAAM,EAAE;IACpC,wBAAwB,EAAE,MAAM,EAAE;
|
|
1
|
+
{"version":3,"file":"ModuleContainerToken.js","sourceRoot":"","sources":["../../../src/integration-engine/ioc/ModuleContainerToken.ts"],"names":[],"mappings":";;;AAAA,MAAM,oBAAoB,GAAG;IACzB,cAAc,EAAE,MAAM,EAAE;IACxB,sBAAsB,EAAE,MAAM,EAAE;IAChC,0BAA0B,EAAE,MAAM,EAAE;IACpC,wBAAwB,EAAE,MAAM,EAAE;CACrC,CAAC;AAEO,oDAAoB"}
|
|
@@ -42,24 +42,6 @@ let MeasurementsTransformation = class MeasurementsTransformation extends integr
|
|
|
42
42
|
soil_hum_0_10: element.HPU1.length > 0 ? Number(element.HPU1) : null,
|
|
43
43
|
soil_hum_10_50: element.HPU2.length > 0 ? Number(element.HPU2) : null,
|
|
44
44
|
soil_hum_50_100: element.HPU3.length > 0 ? Number(element.HPU3) : null,
|
|
45
|
-
air_temp_max: null,
|
|
46
|
-
air_temp_min: null,
|
|
47
|
-
air_temp_ground: null,
|
|
48
|
-
wind_speed_avg: null,
|
|
49
|
-
wind_dir_avg: null,
|
|
50
|
-
wind_gust: null,
|
|
51
|
-
wind_gust_dir: null,
|
|
52
|
-
wind_gust_time: null,
|
|
53
|
-
snow_depth: null,
|
|
54
|
-
snow_water: null,
|
|
55
|
-
radiation_glob: null,
|
|
56
|
-
radiation_uv: null,
|
|
57
|
-
soil_temp_5cm: null,
|
|
58
|
-
soil_temp_10cm: null,
|
|
59
|
-
soil_temp_20cm: null,
|
|
60
|
-
soil_temp_50cm: null,
|
|
61
|
-
soil_temp_100cm: null,
|
|
62
|
-
data_source: "ftp",
|
|
63
45
|
};
|
|
64
46
|
};
|
|
65
47
|
this.transformDecimalValue = (value) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MeasurementsTransformation.js","sourceRoot":"","sources":["../../../src/integration-engine/transformations/MeasurementsTransformation.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,8EAA4F;AAC5F,2DAA2D;AAC3D,iEAAgE;AAGzD,IAAM,0BAA0B,GAAhC,MAAM,0BAA2B,SAAQ,uCAAkB;IAI9D;QACI,KAAK,EAAE,CAAC;QAJL,SAAI,GAAG,4BAA4B,CAAC;QACnC,8BAAyB,GAAG,UAAU,CAAC;QAMrC,qBAAgB,GAAG,CAAC,OAAuB,EAAmB,EAAE;YACtE,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC3C,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC7C,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACzC,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAEzD,OAAO;gBACH,WAAW,EAAE,gBAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE;oBAChD,IAAI,EAAE,eAAe;iBACxB,CAAC,CAAC,KAAK,EAAE;gBACV,UAAU,EAAE,OAAO,CAAC,QAAQ;gBAC5B,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC;gBACnC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC;gBACrC,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC;gBACjC,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,QAAQ,EAAE,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC;gBAC/C,OAAO,EAAE,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC;gBAC9C,MAAM,EAAE,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,KAAK,CAAC;gBACjD,YAAY,EAAE,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC;gBACnD,UAAU,EAAE,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC;gBACjD,QAAQ,EAAE,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC;gBAC/C,QAAQ,EAAE,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,KAAK,CAAC;gBACnD,aAAa,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;gBACpE,cAAc,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;gBACrE,eAAe,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;
|
|
1
|
+
{"version":3,"file":"MeasurementsTransformation.js","sourceRoot":"","sources":["../../../src/integration-engine/transformations/MeasurementsTransformation.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,8 +15,6 @@ class ChmuWorker extends workers_1.AbstractWorker {
|
|
|
15
15
|
};
|
|
16
16
|
// Register tasks
|
|
17
17
|
this.registerTask(Di_1.ChmuContainer.resolve(ModuleContainerToken_1.ModuleContainerToken.DownloadMeasurementsTask));
|
|
18
|
-
this.registerTask(Di_1.ChmuContainer.resolve(ModuleContainerToken_1.ModuleContainerToken.DownloadOpendataMeasurementsTask));
|
|
19
|
-
this.registerTask(Di_1.ChmuContainer.resolve(ModuleContainerToken_1.ModuleContainerToken.DownloadOpendataHistoricalMeasurementsTask));
|
|
20
18
|
}
|
|
21
19
|
}
|
|
22
20
|
exports.ChmuWorker = ChmuWorker;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChmuWorker.js","sourceRoot":"","sources":["../../../src/integration-engine/workers/ChmuWorker.ts"],"names":[],"mappings":";;;AAAA,kCAA2C;AAC3C,sEAAoE;AACpE,2EAA6F;AAC7F,uCAAwC;
|
|
1
|
+
{"version":3,"file":"ChmuWorker.js","sourceRoot":"","sources":["../../../src/integration-engine/workers/ChmuWorker.ts"],"names":[],"mappings":";;;AAAA,kCAA2C;AAC3C,sEAAoE;AACpE,2EAA6F;AAC7F,uCAAwC;AAGxC,MAAa,UAAW,SAAQ,wBAAc;IAG1C;QACI,KAAK,EAAE,CAAC;QAHF,SAAI,GAAG,mBAAW,CAAC;QAStB,iBAAY,GAAG,CAAC,IAAuB,EAAQ,EAAE;YACpD,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YACzB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAC7C,CAAC,CAAC;QAPE,iBAAiB;QACjB,IAAI,CAAC,YAAY,CAAC,kBAAa,CAAC,OAAO,CAA2B,2CAAoB,CAAC,wBAAwB,CAAC,CAAC,CAAC;IACtH,CAAC;CAMJ;AAdD,gCAcC"}
|
|
@@ -20,12 +20,12 @@ const ChmuDatasource_1 = __importDefault(require("../../datasources/ChmuDatasour
|
|
|
20
20
|
const ModuleContainerToken_1 = require("../../ioc/ModuleContainerToken");
|
|
21
21
|
const MeasurementsTransformation_1 = require("../../transformations/MeasurementsTransformation");
|
|
22
22
|
const integration_engine_1 = require("@golemio/core/dist/integration-engine");
|
|
23
|
+
const ContainerToken_1 = require("@golemio/core/dist/integration-engine/ioc/ContainerToken");
|
|
23
24
|
const QueueManager_1 = require("@golemio/core/dist/integration-engine/queueprocessors/QueueManager");
|
|
24
25
|
const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
|
|
25
26
|
const luxon_1 = require("@golemio/core/dist/shared/luxon");
|
|
26
27
|
const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
|
|
27
28
|
const DownloadMeasurementsMessageSchema_1 = require("./DownloadMeasurementsMessageSchema");
|
|
28
|
-
const CoreToken_1 = require("@golemio/core/dist/helpers/ioc/CoreToken");
|
|
29
29
|
let DownloadMeasurementsTask = class DownloadMeasurementsTask extends integration_engine_1.AbstractTask {
|
|
30
30
|
constructor(datasource, transformation, repository, logger) {
|
|
31
31
|
super(""); // done in worker
|
|
@@ -88,7 +88,7 @@ DownloadMeasurementsTask = __decorate([
|
|
|
88
88
|
__param(0, (0, tsyringe_1.inject)(ModuleContainerToken_1.ModuleContainerToken.ChmuDatasource)),
|
|
89
89
|
__param(1, (0, tsyringe_1.inject)(ModuleContainerToken_1.ModuleContainerToken.MeasurementsTransformation)),
|
|
90
90
|
__param(2, (0, tsyringe_1.inject)(ModuleContainerToken_1.ModuleContainerToken.MeasurementsRepository)),
|
|
91
|
-
__param(3, (0, tsyringe_1.inject)(
|
|
91
|
+
__param(3, (0, tsyringe_1.inject)(ContainerToken_1.ContainerToken.Logger)),
|
|
92
92
|
__metadata("design:paramtypes", [ChmuDatasource_1.default,
|
|
93
93
|
MeasurementsTransformation_1.MeasurementsTransformation,
|
|
94
94
|
MeasurementsRepository_1.MeasurementsRepository, Object])
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DownloadMeasurementsTask.js","sourceRoot":"","sources":["../../../../src/integration-engine/workers/tasks/DownloadMeasurementsTask.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,qFAAgF;AAChF,sFAA4D;AAC5D,yEAAoE;AACpE,iGAA4F;AAE5F,8EAAqE;AACrE,qGAAkG;AAClG,6EAAgF;AAChF,2DAA2D;AAC3D,iEAAwE;AAGxE,2FAAwF;
|
|
1
|
+
{"version":3,"file":"DownloadMeasurementsTask.js","sourceRoot":"","sources":["../../../../src/integration-engine/workers/tasks/DownloadMeasurementsTask.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,22 +15,4 @@ export interface IMeasurementDto {
|
|
|
15
15
|
soil_hum_0_10: number | null;
|
|
16
16
|
soil_hum_10_50: number | null;
|
|
17
17
|
soil_hum_50_100: number | null;
|
|
18
|
-
air_temp_max: number | null;
|
|
19
|
-
air_temp_min: number | null;
|
|
20
|
-
air_temp_ground: number | null;
|
|
21
|
-
wind_speed_avg: number | null;
|
|
22
|
-
wind_dir_avg: number | null;
|
|
23
|
-
wind_gust: number | null;
|
|
24
|
-
wind_gust_dir: number | null;
|
|
25
|
-
wind_gust_time: number | null;
|
|
26
|
-
snow_depth: number | null;
|
|
27
|
-
snow_water: number | null;
|
|
28
|
-
radiation_glob: number | null;
|
|
29
|
-
radiation_uv: number | null;
|
|
30
|
-
soil_temp_5cm: number | null;
|
|
31
|
-
soil_temp_10cm: number | null;
|
|
32
|
-
soil_temp_20cm: number | null;
|
|
33
|
-
soil_temp_50cm: number | null;
|
|
34
|
-
soil_temp_100cm: number | null;
|
|
35
|
-
data_source: string;
|
|
36
18
|
}
|
|
@@ -18,24 +18,6 @@ export declare class MeasurementModel extends Model<IMeasurementDto> implements
|
|
|
18
18
|
soil_hum_0_10: number | null;
|
|
19
19
|
soil_hum_10_50: number | null;
|
|
20
20
|
soil_hum_50_100: number | null;
|
|
21
|
-
air_temp_max: number | null;
|
|
22
|
-
air_temp_min: number | null;
|
|
23
|
-
air_temp_ground: number | null;
|
|
24
|
-
wind_speed_avg: number | null;
|
|
25
|
-
wind_dir_avg: number | null;
|
|
26
|
-
wind_gust: number | null;
|
|
27
|
-
wind_gust_dir: number | null;
|
|
28
|
-
wind_gust_time: number | null;
|
|
29
|
-
snow_depth: number | null;
|
|
30
|
-
snow_water: number | null;
|
|
31
|
-
radiation_glob: number | null;
|
|
32
|
-
radiation_uv: number | null;
|
|
33
|
-
soil_temp_5cm: number | null;
|
|
34
|
-
soil_temp_10cm: number | null;
|
|
35
|
-
soil_temp_20cm: number | null;
|
|
36
|
-
soil_temp_50cm: number | null;
|
|
37
|
-
soil_temp_100cm: number | null;
|
|
38
|
-
data_source: string;
|
|
39
21
|
static attributeModel: ModelAttributes<MeasurementModel, IMeasurementDto>;
|
|
40
22
|
static jsonSchema: JSONSchemaType<IMeasurementDto[]>;
|
|
41
23
|
}
|
|
@@ -22,24 +22,6 @@ MeasurementModel.attributeModel = {
|
|
|
22
22
|
soil_hum_0_10: { type: sequelize_1.DataTypes.INTEGER, allowNull: true },
|
|
23
23
|
soil_hum_10_50: { type: sequelize_1.DataTypes.INTEGER, allowNull: true },
|
|
24
24
|
soil_hum_50_100: { type: sequelize_1.DataTypes.INTEGER, allowNull: true },
|
|
25
|
-
air_temp_max: { type: sequelize_1.DataTypes.FLOAT, allowNull: true },
|
|
26
|
-
air_temp_min: { type: sequelize_1.DataTypes.FLOAT, allowNull: true },
|
|
27
|
-
air_temp_ground: { type: sequelize_1.DataTypes.FLOAT, allowNull: true },
|
|
28
|
-
wind_speed_avg: { type: sequelize_1.DataTypes.FLOAT, allowNull: true },
|
|
29
|
-
wind_dir_avg: { type: sequelize_1.DataTypes.FLOAT, allowNull: true },
|
|
30
|
-
wind_gust: { type: sequelize_1.DataTypes.FLOAT, allowNull: true },
|
|
31
|
-
wind_gust_dir: { type: sequelize_1.DataTypes.FLOAT, allowNull: true },
|
|
32
|
-
wind_gust_time: { type: sequelize_1.DataTypes.INTEGER, allowNull: true },
|
|
33
|
-
snow_depth: { type: sequelize_1.DataTypes.FLOAT, allowNull: true },
|
|
34
|
-
snow_water: { type: sequelize_1.DataTypes.FLOAT, allowNull: true },
|
|
35
|
-
radiation_glob: { type: sequelize_1.DataTypes.FLOAT, allowNull: true },
|
|
36
|
-
radiation_uv: { type: sequelize_1.DataTypes.FLOAT, allowNull: true },
|
|
37
|
-
soil_temp_5cm: { type: sequelize_1.DataTypes.FLOAT, allowNull: true },
|
|
38
|
-
soil_temp_10cm: { type: sequelize_1.DataTypes.FLOAT, allowNull: true },
|
|
39
|
-
soil_temp_20cm: { type: sequelize_1.DataTypes.FLOAT, allowNull: true },
|
|
40
|
-
soil_temp_50cm: { type: sequelize_1.DataTypes.FLOAT, allowNull: true },
|
|
41
|
-
soil_temp_100cm: { type: sequelize_1.DataTypes.FLOAT, allowNull: true },
|
|
42
|
-
data_source: { type: sequelize_1.DataTypes.STRING(10), primaryKey: true },
|
|
43
25
|
};
|
|
44
26
|
MeasurementModel.jsonSchema = {
|
|
45
27
|
type: "array",
|
|
@@ -62,26 +44,8 @@ MeasurementModel.jsonSchema = {
|
|
|
62
44
|
soil_hum_0_10: { oneOf: [{ type: "integer" }, { type: "null", nullable: true }] },
|
|
63
45
|
soil_hum_10_50: { oneOf: [{ type: "integer" }, { type: "null", nullable: true }] },
|
|
64
46
|
soil_hum_50_100: { oneOf: [{ type: "integer" }, { type: "null", nullable: true }] },
|
|
65
|
-
air_temp_max: { oneOf: [{ type: "number" }, { type: "null", nullable: true }] },
|
|
66
|
-
air_temp_min: { oneOf: [{ type: "number" }, { type: "null", nullable: true }] },
|
|
67
|
-
air_temp_ground: { oneOf: [{ type: "number" }, { type: "null", nullable: true }] },
|
|
68
|
-
wind_speed_avg: { oneOf: [{ type: "number" }, { type: "null", nullable: true }] },
|
|
69
|
-
wind_dir_avg: { oneOf: [{ type: "number" }, { type: "null", nullable: true }] },
|
|
70
|
-
wind_gust: { oneOf: [{ type: "number" }, { type: "null", nullable: true }] },
|
|
71
|
-
wind_gust_dir: { oneOf: [{ type: "number" }, { type: "null", nullable: true }] },
|
|
72
|
-
wind_gust_time: { oneOf: [{ type: "integer" }, { type: "null", nullable: true }] },
|
|
73
|
-
snow_depth: { oneOf: [{ type: "number" }, { type: "null", nullable: true }] },
|
|
74
|
-
snow_water: { oneOf: [{ type: "number" }, { type: "null", nullable: true }] },
|
|
75
|
-
radiation_glob: { oneOf: [{ type: "number" }, { type: "null", nullable: true }] },
|
|
76
|
-
radiation_uv: { oneOf: [{ type: "number" }, { type: "null", nullable: true }] },
|
|
77
|
-
soil_temp_5cm: { oneOf: [{ type: "number" }, { type: "null", nullable: true }] },
|
|
78
|
-
soil_temp_10cm: { oneOf: [{ type: "number" }, { type: "null", nullable: true }] },
|
|
79
|
-
soil_temp_20cm: { oneOf: [{ type: "number" }, { type: "null", nullable: true }] },
|
|
80
|
-
soil_temp_50cm: { oneOf: [{ type: "number" }, { type: "null", nullable: true }] },
|
|
81
|
-
soil_temp_100cm: { oneOf: [{ type: "number" }, { type: "null", nullable: true }] },
|
|
82
|
-
data_source: { type: "string" },
|
|
83
47
|
},
|
|
84
|
-
required: ["measured_at", "station_id"
|
|
48
|
+
required: ["measured_at", "station_id"],
|
|
85
49
|
},
|
|
86
50
|
};
|
|
87
51
|
//# sourceMappingURL=MeasurementModel.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MeasurementModel.js","sourceRoot":"","sources":["../../../../src/schema-definitions/definitions/models/MeasurementModel.ts"],"names":[],"mappings":";;;AAAA,mEAAwF;AAIxF,MAAa,gBAAiB,SAAQ,iBAAsB;;AAA5D,
|
|
1
|
+
{"version":3,"file":"MeasurementModel.js","sourceRoot":"","sources":["../../../../src/schema-definitions/definitions/models/MeasurementModel.ts"],"names":[],"mappings":"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"}
|
package/docs/asyncapi.yaml
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
asyncapi: 3.0.0
|
|
2
2
|
info:
|
|
3
3
|
title: CHMU
|
|
4
|
-
version: 1.
|
|
5
|
-
description: Downloads CHMU
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
description: Downloads CHMU hourly aggregated data from FTP to csv files.
|
|
6
6
|
channels:
|
|
7
7
|
chmu.downloadMeasurementsTask:
|
|
8
8
|
address: dataplatform.chmu.downloadMeasurementsTask
|
|
9
|
-
description: Downloads CHMU hourly aggregated data from FTP
|
|
9
|
+
description: Downloads CHMU hourly aggregated data from FTP to csv files.
|
|
10
10
|
bindings:
|
|
11
11
|
amqp:
|
|
12
12
|
is: queue
|
|
@@ -15,41 +15,11 @@ channels:
|
|
|
15
15
|
messages:
|
|
16
16
|
chmu.DownloadMeasurementsMessage:
|
|
17
17
|
$ref: "#/components/messages/chmu.DownloadMeasurementsMessage"
|
|
18
|
-
chmu.downloadOpendataMeasurementsTask:
|
|
19
|
-
address: dataplatform.chmu.downloadOpendataMeasurementsTask
|
|
20
|
-
description: Downloads CHMU 10-minute opendata for all stations with a WSI identifier.
|
|
21
|
-
bindings:
|
|
22
|
-
amqp:
|
|
23
|
-
is: queue
|
|
24
|
-
queue:
|
|
25
|
-
durable: true
|
|
26
|
-
messages:
|
|
27
|
-
chmu.DownloadOpendataMessage:
|
|
28
|
-
$ref: "#/components/messages/chmu.DownloadOpendataMessage"
|
|
29
|
-
chmu.downloadOpendataHistoricalMeasurementsTask:
|
|
30
|
-
address: dataplatform.chmu.downloadOpendataHistoricalMeasurementsTask
|
|
31
|
-
description: Downloads historical 10-minute opendata for an arbitrary date range.
|
|
32
|
-
bindings:
|
|
33
|
-
amqp:
|
|
34
|
-
is: queue
|
|
35
|
-
queue:
|
|
36
|
-
durable: true
|
|
37
|
-
messages:
|
|
38
|
-
chmu.DownloadOpendataHistoricalMessage:
|
|
39
|
-
$ref: "#/components/messages/chmu.DownloadOpendataHistoricalMessage"
|
|
40
18
|
operations:
|
|
41
19
|
chmu.downloadMeasurementsTask:
|
|
42
20
|
action: "send"
|
|
43
21
|
channel:
|
|
44
22
|
$ref: "#/channels/chmu.downloadMeasurementsTask"
|
|
45
|
-
chmu.downloadOpendataMeasurementsTask:
|
|
46
|
-
action: "send"
|
|
47
|
-
channel:
|
|
48
|
-
$ref: "#/channels/chmu.downloadOpendataMeasurementsTask"
|
|
49
|
-
chmu.downloadOpendataHistoricalMeasurementsTask:
|
|
50
|
-
action: "send"
|
|
51
|
-
channel:
|
|
52
|
-
$ref: "#/channels/chmu.downloadOpendataHistoricalMeasurementsTask"
|
|
53
23
|
components:
|
|
54
24
|
messages:
|
|
55
25
|
chmu.DownloadMeasurementsMessage:
|
|
@@ -63,48 +33,3 @@ components:
|
|
|
63
33
|
type: string
|
|
64
34
|
nullable: true
|
|
65
35
|
additionalProperties: false
|
|
66
|
-
chmu.DownloadOpendataMessage:
|
|
67
|
-
payload:
|
|
68
|
-
type: object
|
|
69
|
-
properties:
|
|
70
|
-
"date":
|
|
71
|
-
type: string
|
|
72
|
-
nullable: true
|
|
73
|
-
description: ISO 8601 date to fetch opendata for. Defaults to today when omitted.
|
|
74
|
-
"station_id":
|
|
75
|
-
type: string
|
|
76
|
-
nullable: true
|
|
77
|
-
description: Station identifier.
|
|
78
|
-
"wsi":
|
|
79
|
-
type: string
|
|
80
|
-
nullable: true
|
|
81
|
-
description: ČHMÚ WSI station identifier.
|
|
82
|
-
additionalProperties: false
|
|
83
|
-
chmu.DownloadOpendataHistoricalMessage:
|
|
84
|
-
payload:
|
|
85
|
-
type: object
|
|
86
|
-
properties:
|
|
87
|
-
"from":
|
|
88
|
-
type: string
|
|
89
|
-
format: date-time
|
|
90
|
-
description: >
|
|
91
|
-
ISO 8601 timestamp with an explicit timezone (Z or ±HH:MM) - inclusive start of the range
|
|
92
|
-
to download. Required; no default.
|
|
93
|
-
"to":
|
|
94
|
-
type: string
|
|
95
|
-
format: date-time
|
|
96
|
-
description: >
|
|
97
|
-
ISO 8601 timestamp with an explicit timezone (Z or ±HH:MM) - exclusive end of the range
|
|
98
|
-
to download. Required; no default.
|
|
99
|
-
"station_id":
|
|
100
|
-
type: string
|
|
101
|
-
nullable: true
|
|
102
|
-
description: Station identifier. Together with wsi, runs in single-station mode.
|
|
103
|
-
"wsi":
|
|
104
|
-
type: string
|
|
105
|
-
nullable: true
|
|
106
|
-
description: ČHMÚ WSI station identifier. Together with station_id, runs in single-station mode.
|
|
107
|
-
required:
|
|
108
|
-
- from
|
|
109
|
-
- to
|
|
110
|
-
additionalProperties: false
|
|
@@ -2,153 +2,62 @@
|
|
|
2
2
|
|
|
3
3
|
## Záměr
|
|
4
4
|
|
|
5
|
-
Modul slouží ke stažení
|
|
6
|
-
|
|
7
|
-
- **FTP pipeline** - hodinová CSV data z interního FTP (`data_source = 'ftp'`)
|
|
8
|
-
- **Opendata pipeline** - desetiminutová JSON data z veřejného ČHMÚ opendata API (`data_source = 'opendata'`)
|
|
9
|
-
|
|
10
|
-
Data z obou zdrojů se ukládají do stejné tabulky `chmu.measurements` pomocí UPSERT (PK: `measured_at`, `station_id`, `data_source`).
|
|
5
|
+
Modul slouží ke stažení chmu dat z ftp agregovaných po hodině do csv souborů.
|
|
11
6
|
|
|
12
7
|
## Vstupní data
|
|
13
8
|
|
|
14
9
|
### Data aktivně stahujeme
|
|
15
10
|
|
|
16
|
-
|
|
11
|
+
Popis dat, jak je pomocí cronu a integration-engine stahujeme. Pokud jsou data stahována z více zdrojů, každý zdroj je popsán zvlášť.
|
|
12
|
+
|
|
13
|
+
#### *ChmuDatasource*
|
|
17
14
|
|
|
18
15
|
- zdroj dat
|
|
19
|
-
- golemio
|
|
16
|
+
- golemio ftp
|
|
20
17
|
- formát dat
|
|
21
|
-
-
|
|
22
|
-
- [validační schéma](https://gitlab.com/operator-ict/golemio/code/modules/chmu/-/blob/development/src/schema-definitions/datasources/ChmuSchemaProvider.ts)
|
|
18
|
+
- csv soubor
|
|
19
|
+
- [validační schéma: ](https://gitlab.com/operator-ict/golemio/code/modules/chmu/-/blob/development/src/schema-definitions/datasources/ChmuSchemaProvider.ts)
|
|
23
20
|
- [příklad vstupních dat](https://gitlab.com/operator-ict/golemio/code/modules/chmu/-/blob/development/test/data/6443_2023020215.txt)
|
|
24
21
|
- frekvence stahování
|
|
25
22
|
- jednou za hodinu
|
|
26
|
-
- název
|
|
23
|
+
- název rabbitmq fronty
|
|
27
24
|
- `chmu.downloadMeasurementsTask`
|
|
28
25
|
|
|
29
|
-
#### *OpendataDatasource* (opendata)
|
|
30
|
-
|
|
31
|
-
- zdroj dat
|
|
32
|
-
- ČHMÚ opendata
|
|
33
|
-
- URL: `https://opendata.chmi.cz/meteorology/climate/now/data/10m-{WSI}-{YYYYMMDD}.json`
|
|
34
|
-
- soubor pokrývá celý den; každou hodinu přibývají nové záznamy za uplynulou hodinu
|
|
35
|
-
- formát dat
|
|
36
|
-
- JSON, long-format záznamy: `[STATION, ELEMENT, DT, VAL, FLAG, QUALITY]`
|
|
37
|
-
- FLAG: kód podmínky pro zvláštní meteorologické situace (např. `"V"`, `"A"`); typicky `""`
|
|
38
|
-
- QUALITY: `0.0` = dobrá, `1.0` = podezřelá, `2.0` = nízká kvalita, `3.0` = odhadnutá, `4.0` = chybějící, `5.0` = neznámá
|
|
39
|
-
- VAL: číselná hodnota, nebo `""` při chybějícím měření (QUALITY = 4.0)
|
|
40
|
-
- DT ve formátu ISO 8601 UTC (`2026-06-25T10:00:00Z`)
|
|
41
|
-
- frekvence stahování
|
|
42
|
-
- jednou denně (soubor pokrývá celý předchozí den)
|
|
43
|
-
- název RabbitMQ fronty
|
|
44
|
-
- `chmu.downloadOpendataMeasurementsTask`
|
|
45
|
-
- poznámka
|
|
46
|
-
- Zpracovány jsou pouze stanice s vyplněným sloupcem `wsi` v `chmu.stations`; ostatní jsou přeskočeny.
|
|
47
|
-
|
|
48
|
-
#### *OpendataHistoricalDatasource* (jednorázový download historických dat)
|
|
49
|
-
|
|
50
|
-
- zdroj dat
|
|
51
|
-
- ČHMÚ opendata - historický 10min JSON archiv
|
|
52
|
-
- URL: `https://opendata.chmi.cz/meteorology/climate/historical/data/10min/{rok}/10m-{WSI}-{YYYYMM}.json`
|
|
53
|
-
- jeden soubor = jedna stanice × jeden měsíc, všechny veličiny dané stanice (stejně jako živý soubor)
|
|
54
|
-
- formát dat
|
|
55
|
-
- stejný jako *OpendataDatasource* výše
|
|
56
|
-
- frekvence stahování
|
|
57
|
-
- jednorázový batch (ne cron)
|
|
58
|
-
- název RabbitMQ fronty
|
|
59
|
-
- `chmu.downloadOpendataHistoricalMeasurementsTask`
|
|
60
|
-
|
|
61
26
|
## Zpracování dat / transformace
|
|
62
27
|
|
|
28
|
+
Popis transformace a případného obohacení dat. Zaměřeno hlavně na workery a jejich metody.
|
|
29
|
+
|
|
63
30
|
### *ChmuWorker*
|
|
64
31
|
|
|
65
|
-
|
|
32
|
+
Stručný popis workeru.
|
|
66
33
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
34
|
+
#### *DownloadMeasurementsTask*
|
|
35
|
+
|
|
36
|
+
- vstupní rabbitmq fronta
|
|
37
|
+
- název `chmu.downloadMeasurementsTask`
|
|
38
|
+
- parametry `from` and `to` volitelné parametry v iso formátu
|
|
70
39
|
- datové zdroje
|
|
71
|
-
- `ChmuDatasource`
|
|
40
|
+
- `ChmuDatasource`
|
|
72
41
|
- transformace
|
|
73
|
-
-
|
|
74
|
-
-
|
|
42
|
+
- odkaz na transformaci dat, případně stručný popis tranformace
|
|
43
|
+
- [transformace dat](https://gitlab.com/operator-ict/golemio/code/modules/chmu/-/blob/development/src/integration-engine/transformations/MeasurementsTransformation.ts)
|
|
75
44
|
- data modely
|
|
76
45
|
- [MeasurementModel](https://gitlab.com/operator-ict/golemio/code/modules/chmu/-/blob/development/src/schema-definitions/definitions/models/MeasurementModel.ts)
|
|
77
46
|
|
|
78
|
-
#### *DownloadOpendataMeasurementsTask* (opendata)
|
|
79
|
-
|
|
80
|
-
- vstupní RabbitMQ fronta
|
|
81
|
-
- `chmu.downloadOpendataMeasurementsTask`
|
|
82
|
-
- parametr `date` - volitelný ISO 8601 datum; bez parametru stáhne aktuální den
|
|
83
|
-
- tok zpracování
|
|
84
|
-
1. `StationsRepository` - načte stanice s vyplněným WSI z `chmu.stations`
|
|
85
|
-
2. `OpendataDatasource` - pro každou stanici stáhne denní 10m JSON soubor
|
|
86
|
-
3. Přiřazení `station_id` dle WSI -> `station_id` mappingu
|
|
87
|
-
4. `OpendataMeasurementsTransformation` - pivot long->wide; skupinování dle `(station_id, DT)`; `data_source = 'opendata'`
|
|
88
|
-
5. `MeasurementsRepository` - UPSERT do `chmu.measurements`
|
|
89
|
-
- mapování ELEMENT -> DB sloupec
|
|
90
|
-
|
|
91
|
-
| ELEMENT | DB sloupec | Poznámka |
|
|
92
|
-
|---------|-----------|---------|
|
|
93
|
-
| T | air_temp | |
|
|
94
|
-
| H | air_hum | |
|
|
95
|
-
| P | air_pressure | |
|
|
96
|
-
| F | wind_speed | |
|
|
97
|
-
| D | wind_dir | |
|
|
98
|
-
| SRA10M | precip | |
|
|
99
|
-
| SSV10M | sunlight | ÷ 360 (s -> desetinné hodiny) |
|
|
100
|
-
| TMA | air_temp_max | |
|
|
101
|
-
| TMI | air_temp_min | |
|
|
102
|
-
| TPM | air_temp_ground | |
|
|
103
|
-
| Fprum | wind_speed_avg | |
|
|
104
|
-
| Dprum | wind_dir_avg | |
|
|
105
|
-
| Fmax | wind_gust | |
|
|
106
|
-
| Dmax | wind_gust_dir | |
|
|
107
|
-
| Casmax | wind_gust_time | |
|
|
108
|
-
| SCEa | snow_depth | |
|
|
109
|
-
| SVHa | snow_water | |
|
|
110
|
-
| RGLB10 | radiation_glob | |
|
|
111
|
-
| REUV10 / REUV25 | radiation_uv | |
|
|
112
|
-
| T05–T100 | soil_temp_5cm–soil_temp_100cm | |
|
|
113
|
-
|
|
114
|
-
- data modely
|
|
115
|
-
- [MeasurementModel](https://gitlab.com/operator-ict/golemio/code/modules/chmu/-/blob/development/src/schema-definitions/definitions/models/MeasurementModel.ts)
|
|
116
47
|
|
|
117
|
-
#### *DownloadOpendataHistoricalMeasurementsTask*
|
|
118
|
-
|
|
119
|
-
- vstupní RabbitMQ fronta
|
|
120
|
-
- `chmu.downloadOpendataHistoricalMeasurementsTask`
|
|
121
|
-
- parametry `from` / `to` - povinné ISO 8601 timestampy s časovou zónou (`Z` nebo `±HH:MM`); volitelně `station_id` + `wsi` pro omezení na jednu stanici
|
|
122
|
-
- bez `station_id`/`wsi` rozešle subtasky pro všechny stanice; se `station_id`+`wsi` a rozsahem přes více měsíců rozešle subtasky po měsících; rozsah v rámci jednoho měsíce se zpracuje rovnou (leaf mode)
|
|
123
|
-
- tok zpracování
|
|
124
|
-
1. `StationsRepository` - stejné jako u živého pipeline (stanice s vyplněným WSI)
|
|
125
|
-
2. `OpendataHistoricalDatasource` - jeden fetch na stanici × měsíc (měsíc určen z `from`)
|
|
126
|
-
3. Přiřazení `station_id` dle WSI -> `station_id` mappingu
|
|
127
|
-
4. Filtr `from <= DT < to` dle rozsahu dílčí zprávy
|
|
128
|
-
5. `OpendataMeasurementsTransformation` - stejná jako u živého pipeline (pivot long->wide, `data_source = 'opendata'`, žádná hodinová agregace - ukládá se ve stejné 10minutové granularitě jako živá data)
|
|
129
|
-
6. `MeasurementsRepository.bulkUpdate` - stejné UPSERT jako u živého pipeline; `data_source` je součástí primárního klíče, takže `opendata` řádky nikdy nekolidují s `ftp` řádky
|
|
130
|
-
- mapování ELEMENT -> DB sloupec
|
|
131
|
-
- stejné jako u *DownloadOpendataMeasurementsTask* výše
|
|
132
|
-
- data modely
|
|
133
|
-
- [MeasurementModel](https://gitlab.com/operator-ict/golemio/code/modules/chmu/-/blob/development/src/schema-definitions/definitions/models/MeasurementModel.ts)
|
|
134
|
-
- poznámka
|
|
135
|
-
- Rozsah (`from`/`to`) určuje výhradně volající zpráva.
|
|
136
48
|
|
|
137
49
|
## Uložení dat
|
|
138
50
|
|
|
51
|
+
Popis ukládání dat.
|
|
52
|
+
|
|
139
53
|
### Obecné
|
|
140
54
|
|
|
141
55
|
- typ databáze
|
|
142
|
-
-
|
|
143
|
-
-
|
|
56
|
+
- PSQL
|
|
57
|
+
- datábázové schéma
|
|
144
58
|
- schéma: `chmu`
|
|
145
59
|

|
|
146
60
|
- retence dat
|
|
147
61
|
- data jsou zachována
|
|
148
62
|
- AsyncApi dokumentace
|
|
149
63
|
- [AsyncApi](./asyncapi.yaml)
|
|
150
|
-
|
|
151
|
-
### Poznámky k datové kvalitě
|
|
152
|
-
|
|
153
|
-
- Sloupce `soil_hum_0_10`, `soil_hum_10_50`, `soil_hum_50_100` zůstávají v DB, ale opendata zdroj půdní vlhkost neobsahuje - všechny záznamy s `data_source = 'opendata'` mají tyto sloupce `NULL`.
|
|
154
|
-
- Timezone: DT z opendata přichází jako UTC a je převedeno do Europe/Prague pro výpočet zobrazovacích polí (`time`, `year`, `month`, `day`).
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@golemio/chmu",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"description": "Golemio CHMU module",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -35,9 +35,9 @@
|
|
|
35
35
|
"devDependencies": {
|
|
36
36
|
"@commitlint/cli": "^11.0.0",
|
|
37
37
|
"@commitlint/config-conventional": "^11.0.0",
|
|
38
|
-
"@golemio/cli": "1.
|
|
39
|
-
"@golemio/core": "4.0.0
|
|
40
|
-
"@golemio/db-common": "1.2.
|
|
38
|
+
"@golemio/cli": "1.12.0",
|
|
39
|
+
"@golemio/core": "4.0.0",
|
|
40
|
+
"@golemio/db-common": "1.2.3",
|
|
41
41
|
"@golemio/eslint-config": "1.1.4",
|
|
42
42
|
"@swc-node/register": "^1.11.1",
|
|
43
43
|
"@swc/core": "^1.15.33",
|