gnss-js 0.0.1 → 0.1.1
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/.prettierrc +5 -0
- package/dist/index.d.mts +66 -48
- package/dist/index.d.ts +66 -48
- package/dist/index.js +323 -292
- package/dist/index.mjs +303 -284
- package/jest.config.js +6 -0
- package/package.json +7 -7
- package/test/functions.test.js +69 -0
- package/test/gnss-scales.test.js +95 -0
- package/test/julian.test.js +41 -0
- package/test/rinex.test.js +11 -0
- package/test/test.js +11 -0
- package/test/utc.test.js +30 -0
- package/test/index.js +0 -3
package/package.json
CHANGED
|
@@ -1,27 +1,27 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "gnss-js",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"description": "Tool to peform GNSS-related computations",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"module": "./dist/index.mjs",
|
|
7
7
|
"types": "./dist/index.d.ts",
|
|
8
8
|
"scripts": {
|
|
9
9
|
"build": "tsup",
|
|
10
|
-
"test": "
|
|
10
|
+
"test": "jest",
|
|
11
|
+
"format": "prettier --write ."
|
|
11
12
|
},
|
|
12
13
|
"keywords": [
|
|
13
14
|
"gnss",
|
|
14
15
|
"gps"
|
|
15
16
|
],
|
|
16
17
|
"author": "Miguel González <work@miguel.es>",
|
|
17
|
-
"repository": {
|
|
18
|
-
"type": "git",
|
|
19
|
-
"url": "https://github.com/LiuzDE/gnss-js.git"
|
|
20
|
-
},
|
|
21
|
-
"homepage": "https://gnsscalc.com",
|
|
22
18
|
"license": "ISC",
|
|
23
19
|
"devDependencies": {
|
|
20
|
+
"@types/jest": "^29.5.14",
|
|
24
21
|
"@types/node": "^20.11.17",
|
|
22
|
+
"jest": "^29.7.0",
|
|
23
|
+
"prettier": "^3.5.3",
|
|
24
|
+
"ts-jest": "^29.3.2",
|
|
25
25
|
"tsup": "^8.0.2",
|
|
26
26
|
"typescript": "^5.3.3"
|
|
27
27
|
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
const {
|
|
2
|
+
getHourCode,
|
|
3
|
+
getDayOfYear,
|
|
4
|
+
getDateFromHourCode,
|
|
5
|
+
getDayOfWeek,
|
|
6
|
+
getDateFromDayOfWeek,
|
|
7
|
+
getTimeOfDay,
|
|
8
|
+
getDateFromTimeOfDay,
|
|
9
|
+
getDateFromDayOfYear,
|
|
10
|
+
getWeekOfYear,
|
|
11
|
+
} = require('../src/index');
|
|
12
|
+
|
|
13
|
+
test('getTimeOfDay', () => {
|
|
14
|
+
const date = new Date('1980-01-06T23:09:00Z');
|
|
15
|
+
const time_of_day = getTimeOfDay(date);
|
|
16
|
+
expect(time_of_day).toBe(83340);
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
test('getDateFromTimeOfDay', () => {
|
|
20
|
+
const date = new Date('1980-01-06T00:00:00Z');
|
|
21
|
+
const new_date = getDateFromTimeOfDay(83340, date);
|
|
22
|
+
expect(new_date.toISOString()).toBe('1980-01-06T23:09:00.000Z');
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
test('getDayOfYear', () => {
|
|
26
|
+
const date = new Date('1980-01-06T23:09:00Z');
|
|
27
|
+
const day_of_year = getDayOfYear(date);
|
|
28
|
+
expect(day_of_year).toBe(6);
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
test('getDateFromDayOfYear', () => {
|
|
32
|
+
const date = new Date('1980-01-06T00:00:00Z');
|
|
33
|
+
const new_date = getDateFromDayOfYear(100, date);
|
|
34
|
+
expect(new_date.toISOString()).toBe('1980-04-09T00:00:00.000Z');
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
test('getHourCode', () => {
|
|
38
|
+
const date = new Date('1980-01-06T00:00:00Z');
|
|
39
|
+
const hour_code = getHourCode(date);
|
|
40
|
+
expect(hour_code).toBe('a');
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
test('getDateFromHourCode', () => {
|
|
44
|
+
const date = new Date('1980-01-06T00:00:00Z');
|
|
45
|
+
const new_date = getDateFromHourCode('c', date);
|
|
46
|
+
expect(new_date.toISOString()).toBe('1980-01-06T02:00:00.000Z');
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
test('getDayOfWeek', () => {
|
|
50
|
+
const date = new Date('1980-01-06T00:00:00Z');
|
|
51
|
+
expect(getDayOfWeek(date)).toBe(0);
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
test('getDateFromDayOfWeek', () => {
|
|
55
|
+
const date = new Date('1980-01-06T00:00:00Z');
|
|
56
|
+
const new_date = getDateFromDayOfWeek(1, date);
|
|
57
|
+
expect(new_date.toISOString()).toBe('1980-01-07T00:00:00.000Z');
|
|
58
|
+
});
|
|
59
|
+
|
|
60
|
+
test('getWeekOfYear', () => {
|
|
61
|
+
const date = new Date('2025-05-05T00:00:00Z');
|
|
62
|
+
expect(getWeekOfYear(date)).toBe(19);
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
// test('getDateFromDayOfWeek', () => {
|
|
66
|
+
// const date = new Date('1980-01-06T00:00:00Z')
|
|
67
|
+
// const new_date = getDateFromDayOfWeek(1, date);
|
|
68
|
+
// expect(new_date.toISOString()).toBe('1980-01-07T00:00:00.000Z');
|
|
69
|
+
// });
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
const {
|
|
2
|
+
getGpsTime,
|
|
3
|
+
getDateFromGpsTime,
|
|
4
|
+
getGalTime,
|
|
5
|
+
getDateFromGalTime,
|
|
6
|
+
getBdsTime,
|
|
7
|
+
getDateFromBdsTime,
|
|
8
|
+
getUnixTime,
|
|
9
|
+
getDateFromUnixTime,
|
|
10
|
+
getTaiDate,
|
|
11
|
+
getTtDate,
|
|
12
|
+
getDateFromTai,
|
|
13
|
+
getDateFromTt,
|
|
14
|
+
getWeekNumber,
|
|
15
|
+
getDateFromGpsData,
|
|
16
|
+
} = require('../src/index');
|
|
17
|
+
|
|
18
|
+
test('getGpsTime', () => {
|
|
19
|
+
const gps_time = getGpsTime(new Date('1980-01-06T00:00:00Z'));
|
|
20
|
+
expect(gps_time).toBe(0);
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
test('getDateFromGpsTime', () => {
|
|
24
|
+
const date = getDateFromGpsTime(0);
|
|
25
|
+
expect(date.getTime()).toBe(new Date('1980-01-06T00:00:00Z').getTime());
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
test('getWeekNumber', () => {
|
|
29
|
+
const week_no = getWeekNumber(new Date('1980-01-06T00:00:00Z'));
|
|
30
|
+
expect(week_no).toBe(0);
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
test('getTimeOfWeek', () => {
|
|
34
|
+
const tow = getWeekNumber(new Date('1980-01-06T00:00:00Z'));
|
|
35
|
+
expect(tow).toBe(0);
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
test('getDateFromGpsData', () => {
|
|
39
|
+
const date = getDateFromGpsData(0, 0);
|
|
40
|
+
expect(date.getTime()).toBe(new Date('1980-01-06T00:00:00Z').getTime());
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
test('getGalTime', () => {
|
|
44
|
+
const gal_time = getGalTime(new Date('1999-08-22T00:00:00Z'));
|
|
45
|
+
expect(gal_time).toBe(0);
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
test('getDateFromGalTime', () => {
|
|
49
|
+
const date = getDateFromGalTime(0);
|
|
50
|
+
expect(date.getTime()).toBe(new Date('1999-08-22T00:00:00Z').getTime());
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
test('getBdsTime', () => {
|
|
54
|
+
const bds_time = getBdsTime(new Date('2006-01-01T00:00:13Z'));
|
|
55
|
+
expect(bds_time).toBe(0);
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
test('getDateFromBdsTime', () => {
|
|
59
|
+
const date = getDateFromBdsTime(0);
|
|
60
|
+
expect(date.getTime()).toBe(new Date('2006-01-01T00:00:13Z').getTime());
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
test('getUnixTime', () => {
|
|
64
|
+
const unix_time = getUnixTime(new Date('2025-01-01T00:00:18Z'));
|
|
65
|
+
expect(unix_time).toBe(1735689600000);
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
test('getDateFromUnixTime', () => {
|
|
69
|
+
const date = getDateFromUnixTime(0);
|
|
70
|
+
expect(date.toISOString()).toBe('1969-12-31T23:59:49.000Z');
|
|
71
|
+
});
|
|
72
|
+
|
|
73
|
+
test('getTaiDate', () => {
|
|
74
|
+
const date = getDateFromGpsTime(0);
|
|
75
|
+
const tai_date = getTaiDate(date);
|
|
76
|
+
expect(tai_date.getTime()).toBe(new Date('1980-01-06T00:00:19Z').getTime());
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
test('getDateFromTai', () => {
|
|
80
|
+
const date = getDateFromTai(new Date('1980-01-06T00:00:19Z'));
|
|
81
|
+
expect(getGpsTime(date)).toBe(0);
|
|
82
|
+
});
|
|
83
|
+
|
|
84
|
+
test('getTtDate', () => {
|
|
85
|
+
const date = getDateFromGpsTime(0);
|
|
86
|
+
const tt_date = getTtDate(date);
|
|
87
|
+
expect(tt_date.getTime()).toBe(
|
|
88
|
+
new Date('1980-01-06T00:00:51.184Z').getTime()
|
|
89
|
+
);
|
|
90
|
+
});
|
|
91
|
+
|
|
92
|
+
test('getDateFromTt', () => {
|
|
93
|
+
const date = getDateFromTt(new Date('1980-01-06T00:00:51.184Z'));
|
|
94
|
+
expect(getGpsTime(date)).toBe(0);
|
|
95
|
+
});
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
const {
|
|
2
|
+
getJulianDate,
|
|
3
|
+
getDateFromJulianDate,
|
|
4
|
+
getMJD,
|
|
5
|
+
getDateFromMJD,
|
|
6
|
+
getMJD2000,
|
|
7
|
+
getDateFromMJD2000,
|
|
8
|
+
} = require('../src/index');
|
|
9
|
+
|
|
10
|
+
test('getJulianDate', () => {
|
|
11
|
+
date = new Date('2024-01-01T00:00:00Z');
|
|
12
|
+
const julian_date = getJulianDate(date);
|
|
13
|
+
expect(julian_date).toBeCloseTo(2460310.5002199076, 5);
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
test('getDateFromJulianDate', () => {
|
|
17
|
+
date = getDateFromJulianDate(2460310.5002199076);
|
|
18
|
+
expect(date.toISOString()).toBe('2024-01-01T00:00:00.000Z');
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
test('getMJD', () => {
|
|
22
|
+
date = new Date('2024-01-01T00:00:00Z');
|
|
23
|
+
const mjd = getMJD(date);
|
|
24
|
+
expect(mjd).toBeCloseTo(60310.00021990741, 5);
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
test('getDateFromMJD', () => {
|
|
28
|
+
date = getDateFromMJD(60310.00021990761);
|
|
29
|
+
expect(date.toISOString()).toBe('2024-01-01T00:00:00.000Z');
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
test('getMJD2000', () => {
|
|
33
|
+
date = new Date('2024-01-01T00:00:00Z');
|
|
34
|
+
const mjd = getMJD2000(date);
|
|
35
|
+
expect(mjd).toBeCloseTo(8765.500219907612, 5);
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
test('getDateFromMJD2000', () => {
|
|
39
|
+
date = getDateFromMJD2000(8765.500219907612);
|
|
40
|
+
expect(date.toISOString()).toBe('2024-01-01T00:00:00.000Z');
|
|
41
|
+
});
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
const { getRINEX, getDateFromRINEX } = require('../src/index');
|
|
2
|
+
|
|
3
|
+
test('getRINEX', () => {
|
|
4
|
+
const rinex = getRINEX(new Date('1980-01-06T00:00:00Z'));
|
|
5
|
+
expect(rinex).toBe('> 1980 01 06 00 00 00.0000000');
|
|
6
|
+
});
|
|
7
|
+
|
|
8
|
+
test('getDateFromRINEX', () => {
|
|
9
|
+
const date = getDateFromRINEX('> 1980 01 06 00 00 00.0000000');
|
|
10
|
+
expect(date.getTime()).toBe(new Date('1980-01-06T00:00:00Z').getTime());
|
|
11
|
+
});
|
package/test/test.js
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
// To run: npx tsc && node test/test.js
|
|
2
|
+
|
|
3
|
+
const { getTaiDate, getDateFromUtc } = require('../dist/index');
|
|
4
|
+
|
|
5
|
+
const utc_date = new Date('2017-01-01T00:00:01.000Z');
|
|
6
|
+
// const utc_date = new Date('2016-12-31T23:59:59.000Z');
|
|
7
|
+
const gps_date = getDateFromUtc(utc_date);
|
|
8
|
+
|
|
9
|
+
console.log('TAI Date:', getTaiDate(gps_date).toISOString());
|
|
10
|
+
console.log('UTC Date:', utc_date.toISOString());
|
|
11
|
+
console.log('GPS Date:', gps_date.toISOString());
|
package/test/utc.test.js
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
const {
|
|
2
|
+
getLeap,
|
|
3
|
+
getGpsLeap,
|
|
4
|
+
getUtcDate,
|
|
5
|
+
getDateFromUtc,
|
|
6
|
+
} = require('../src/index');
|
|
7
|
+
|
|
8
|
+
test('getLeap', () => {
|
|
9
|
+
const gps_date = new Date('2017-01-01T00:00:31Z');
|
|
10
|
+
const leap_seconds = getLeap(gps_date);
|
|
11
|
+
expect(leap_seconds).toBe(37);
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
test('getLeap', () => {
|
|
15
|
+
const gps_date = new Date('2017-01-01T00:00:31Z');
|
|
16
|
+
const leap_seconds = getGpsLeap(gps_date);
|
|
17
|
+
expect(leap_seconds).toBe(18);
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
test('getUtcDate', () => {
|
|
21
|
+
const gps_date = new Date('2017-01-01T00:00:31Z');
|
|
22
|
+
const utc_date = getUtcDate(gps_date);
|
|
23
|
+
expect(utc_date.toISOString()).toBe('2017-01-01T00:00:13.000Z');
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
test('getDateFromUtc', () => {
|
|
27
|
+
const utc_date = new Date('2017-01-01T00:00:01.000Z');
|
|
28
|
+
const gps_date = getDateFromUtc(utc_date);
|
|
29
|
+
expect(gps_date.toISOString()).toBe('2017-01-01T00:00:19.000Z');
|
|
30
|
+
});
|
package/test/index.js
DELETED