How to calculate the average altitude of a satellite over a period of time based on its multiple position and velocity coordinates

hello everyone!
I currently have daily position and velocity vector data for a sun synchronous orbit satellite (one data per second, but importantly, these positions and velocities may have anomalies or deviations), and I want to use this data to calculate the minimum, maximum, and average altitude of the satellite over a period of time (such as one orbital cycle, or 10 minutes, or next Monday from 12:00 to 12:30).
For example, there is currently data from 02:31:54 to 21:56:06, and the minimum, maximum, and average heights for each orbital period can be calculated.
Now I can use the position and velocity at a certain moment to calculate the altitude of the satellite, but I don’t know how to use multiple data to calculate it because there are multiple data in one cycle. If I only choose one of them for calculation, I don’t know if there is any deviation in the position and speed at the moment I have chosen. If the final average is calculated separately at each moment, I am concerned that the error will be significant.
So what do I need to do to achieve my goal?

Here is my satellite data:
time x y z vx vy vz
2024 06 20 02 31 54.000 3422432.76 5395968 2578584.5 -228.46 -3199.33 6981.23
2024 06 20 02 31 55.000 3422201.92 5392766.27 2585564.05 -233.13 -3205.88 6978.07
2024 06 20 02 31 56.000 3421966.07 5389556.98 2592540.58 -237.77 -3212.38 6974.92
2024 06 20 02 31 57.000 3421726.05 5386340.94 2599514.28 -242.37 -3218.87 6971.74
2024 06 20 02 31 58.000 3421481.38 5383118.72 2606484.45 -247.01 -3225.42 6968.55
2024 06 20 02 31 59.000 3421232.05 5379890.43 2613451.31 -251.6 -3231.86 6965.36
2024 06 20 02 32 00.000 3420978.39 5376655.37 2620415.49 -256.21 -3238.34 6962.16
2024 06 20 02 32 01.000 3420719.83 5373413.42 2627376.22 -260.87 -3244.86 6958.97
2024 06 20 02 32 02.000 3420456.38 5370165.27 2634333.56 -265.51 -3251.34 6955.79
2024 06 20 02 32 03.000 3420188.45 5366911.11 2641287.34 -270.14 -3257.81 6952.57
2024 06 20 02 32 04.000 3419916.43 5363650.66 2648238.03 -274.79 -3264.35 6949.3
2024 06 20 02 32 05.000 3419639.31 5360382.95 2655185.97 -279.38 -3270.76 6946.05
2024 06 20 02 32 06.000 3419357.94 5357108.96 2662130.68 -283.96 -3277.2 6942.77
2024 06 20 02 32 07.000 3419071.67 5353828.84 2669071.66 -288.6 -3283.67 6939.51
2024 06 20 02 32 08.000 3418780.66 5350542.31 2676009.57 -293.22 -3290.1 6936.26
2024 06 20 02 32 09.000 3418485.14 5347249.05 2682944.48 -297.87 -3296.54 6932.99
2024 06 20 02 32 10.000 3418185.07 5343949.47 2689875.81 -302.52 -3302.99 6929.72
2024 06 20 02 32 11.000 3417880.22 5340643.54 2696803.83 -307.15 -3309.45 6926.43
2024 06 20 02 32 12.000 3417569.5 5337329.85 2703727.92 -311.77 -3315.88 6923.15
2024 06 20 02 32 13.000 3417254.62 5334009.75 2710648.98 -316.42 -3322.34 6919.85
2024 06 20 02 32 14.000 3416935.27 5330681.58 2717566.86 -321 -3328.7 6916.54
2024 06 20 02 32 15.000 3416612.13 5327349.96 2724481.89 -325.59 -3335.1 6913.21
2024 06 20 02 32 16.000 3416285.9 5324013.62 2731393.54 -330.25 -3341.51 6909.84
2024 06 20 02 32 17.000 3415954.33 5320670.39 2738302.28 -334.88 -3347.94 6906.48
2024 06 20 02 32 18.000 3415617.71 5317319.08 2745206.86 -339.51 -3354.4 6903.11
2024 06 20 02 32 19.000 3415276.04 5313962.65 2752108.92 -344.17 -3360.78 6899.78
2024 06 20 02 32 20.000 3414928.67 5310597.43 2759006.65 -348.82 -3367.26 6896.4
2024 06 20 02 32 21.000 3414576.93 5307227.32 2765901.64 -353.45 -3373.62 6893.07

2024 06 20 21 40 47.000 -1489646.67 2736465.38 6141877.56 5209.13 -4568.06 3290.37
2024 06 20 21 40 48.000 -1484436.86 2731895.46 6145163.93 5210.25 -4572.13 3282.89
2024 06 20 21 40 49.000 -1479225.99 2727321.3 6148442.77 5211.39 -4576.19 3275.38
2024 06 20 21 40 50.000 -1474014 2722743.18 6151714.49 5212.51 -4580.25 3267.88
2024 06 20 21 40 51.000 -1468800.86 2718160.79 6154979.22 5213.62 -4584.29 3260.43
2024 06 20 21 40 52.000 -1463586.73 2713574.43 6158235.93 5214.73 -4588.33 3252.93
2024 06 20 21 40 53.000 -1458371.51 2708983.92 6161485.09 5215.83 -4592.37 3245.42
2024 06 20 21 40 54.000 -1453155.28 2704389.53 6164726.78 5216.91 -4596.41 3237.91
2024 06 20 21 40 55.000 -1447937.91 2699791.08 6167960.76 5218 -4600.43 3230.37
2024 06 20 21 40 56.000 -1442719.52 2695188.73 6171187.45 5219.08 -4604.47 3222.85
2024 06 20 21 40 57.000 -1437499.76 2690582.27 6174406.61 5220.15 -4608.49 3215.33
2024 06 20 21 40 58.000 -1432278.79 2685971.7 6177618.8 5221.21 -4612.51 3207.81
2024 06 20 21 40 59.000 -1427056.96 2681357.26 6180823.08 5222.26 -4616.52 3200.29
2024 06 20 21 56 06.000 -2029015.37 3192667.7 5755939.96 5051.95 -4112.21 4052.55

Hello @pig357,

I would say that you can use these values as sort of GNSS measurements and perform an orbit determination to find the orbit that best fit these measurements ! More specifically, you are going to perform a Batch Least Squares estimation using : BatchLSEstimator (OREKIT 12.2.1 API)

I don’t have the time to do an elaborate answer but i would advise you to look at this tutorial:

Also feel free to search on the forum as multiple threads are about setting up Orbit Determination (OD) as well.

Once you have the orbit that best fit these measurements, you will be able to run a propagation with a step handler to retrieve the average satellite altitude over this time frame. Feel free to come back to us once you are at this step if you are still beginning with Orekit.

Keep us updated so we can help you !

Cheers,
Vincent