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