and when I try to run the code using python, a error occured:
<super: <class ‘JavaError’>, >
Java stacktrace:
org.orekit.errors.OrekitException: ITRF frame ITRF-2020 not found
at org.orekit.frames.ITRFVersion.getITRFVersion(ITRFVersion.java:141)
at org.orekit.frames.ITRFVersionLoader$Parser.loadData(ITRFVersionLoader.java:188)
at org.orekit.data.DataProvidersManager$MonitoringWrapper.loadData(DataProvidersManager.java:354)
at org.orekit.data.ZipJarCrawler.feed(ZipJarCrawler.java:218)
at org.orekit.data.ZipJarCrawler.feed(ZipJarCrawler.java:143)
at org.orekit.data.DataProvidersManager.feed(DataProvidersManager.java:312)
at org.orekit.frames.ITRFVersionLoader.(ITRFVersionLoader.java:100)
at org.orekit.frames.BulletinAFilesLoader$Parser.(BulletinAFilesLoader.java:409)
at org.orekit.frames.BulletinAFilesLoader.fillHistory(BulletinAFilesLoader.java:364)
at org.orekit.frames.LazyLoadedEop.getEOPHistory(LazyLoadedEop.java:311)
at org.orekit.frames.LazyLoadedFrames.getEOPHistory(LazyLoadedFrames.java:182)
at org.orekit.frames.AbstractFrames.getCIRF(AbstractFrames.java:400)
at org.orekit.frames.AbstractFrames.getTIRF(AbstractFrames.java:353)
at org.orekit.frames.AbstractFrames.getITRF(AbstractFrames.java:278)
at org.orekit.frames.FramesFactory.getITRF(FramesFactory.java:415)
You should update your orekit version to 11.3.2 or do not use the latest physical data provided from the web site but update it by hand.
The IERS 2020 is not supported by versions less than 11.3.2. Therefore, the latest physical data contains IERS 2020 and cannot be parsed by the data crawler.
It is exactly as @uzayt said. The problem does not lie in your code but in the orekit data which contain the ITRF-2020 frame that cannot be parsed. The JavaError message is a bit misleading in the way that it does not mention “parsing” at all.
There are two things, the IERS conventions (Orekit supports the 3 available to this date: 1996, 2003 and 2010), and the ITRF version (Orekit supports many, from 1988 to 2020 (this last since 11.2)).
If you do not specify an ITRFVersion when calling FramesFactory.getITRF(...) then Orekit automatically selects it based on the date, as explained in file itrf-versions.conf from the orekit-data repository.
The problem you had (I think) is that the orekit-data repo is not versioned and displays “ITRF-2020” in its content; it is compatible with the latest official version of Orekit.
But since you used Orekit version 11.0, your code didn’t understand the ITRFVersion.ITRF_2020 key, hence the error.
Thanks a lot for your detailed explanation.
I tried to update my orekit from version 11.0 to the latest 11.3.2.
However, I was using conda based python language for coding.
It seems there is no way to update orekit.
to
ITRF = FramesFactory.getITRF(ITRFVersion.ITRF_2014,IERSConventions.IERS_2010,True)
The same error happend again.
<super: <class ‘JavaError’>, >
Java stacktrace:
org.orekit.errors.OrekitException: ITRF frame ITRF-2020 not found
at org.orekit.frames.ITRFVersion.getITRFVersion(ITRFVersion.java:141)
at org.orekit.frames.ITRFVersionLoader$Parser.loadData(ITRFVersionLoader.java:188)