Processing a clock comparison
The clock comparison process intents to respect the formalism defined in the paper [Lodewyck2020]
Campaign
ClockComparison
ComparatorOutput
First, let’s look for the different campaign models to see which campaign ID should be used later on.
>>> from palantir.api import eyeOfSauronAPI
>>> campaign_models = eyeOfSauronAPI.getCampaigns()
>>> campaign_models
Then, let’s instantiate a Campaign
.
>>> import palantir.clock_comparisons as clock_comparisons
>>> startDate = '230414'
>>> endDate = '230420'
>>> startTime = '000000'
>>> endTime = '000000'
>>> campaignID = 6
>>> campaign = clock_comparisons.Campaign(campaignID, startDate, endDate, startTime, endTime, timezone='UTC')
Find your modules
Get all modules involved in a specific campaign by ID.
>>> from palantir.api import eyeOfSauronAPI
>>> campaign_ID = 6
>>> modules = eyeOfSauronAPI.getCampaigns(campaign_ID, extra_uri="modules")
>>> modules
Default frequency chain
Compute a comparison based on Module
objects of type “clock”. If at least one frequency chain exists, the shortest
is chosen by default.
ClockComparison
is returned.
>>> module0 = 184
>>> moduleN = 187
>>> comparison0N = campaign.processClockComparison(module0, moduleN)
>>> comparison0N.label
>>> comparison0N.comparison
>>> comparison0N.comparison.timeChunk.getAsDataframe()
Access the frequency chain’s list of ComparatorOutput
.
>>> first_comparator = comparison0N.comparatorOutputs[0]
>>> first_comparator.label
>>> first_comparator.published_data
Choose a frequency chain
Compute a comparison based on Module
objects of type “clock”. Choose the chain of comparators between all the possible ones.
A ClockComparison
object is returned.
Retrieves all the possible chains between two modules
>>> module0 = 184
>>> moduleN = 187
>>> chains = campaign.getChains(module0, moduleN)
>>> print(chains)
Pass the desired chain as an argument
>>> desired_chain = chains[0]
>>> comparison0N = campaign.processClockComparisonFromChain(desired_chain)
>>> comparison0N.label
>>> comparison0N.comparison
Access the frequency chain’s list of ComparatorOutput
.
>>> first_comparator = comparison0N.comparatorOutputs[0]
>>> first_comparator.label
>>> first_comparator.published_data