Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Integrate with latest VODML tooling #20

Open
wants to merge 12 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/gradle.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@ jobs:
with:
java-version: 11

- name: validate CAOM datas model version(s)
run: ./gradlew --info clean checkstyleTest test
- name: validate CAOM data model
run: ./gradlew --info clean vodmlValidate test

- name: generate HTML documentation
run: ./gradlew --info clean xslt
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/.idea/
57 changes: 57 additions & 0 deletions Changelog.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
# CAOM changes
The following is a brief summary of changes in the current draft version (2.5).

## general changes
- change `Plane.position.bounds` to be mandatory
- change `Plane.energy.bounds` to be mandatory
- change `Plane.time.bounds` to be mandatory
- change `Plane.polarization.states` to require at least 1 value

The above changes mean that each of position/energy/time/polarization objects have one mandatory field and
queries with something like `Plane.position.bounds is not null` can be used to detect if the object is present.

- add `ArtifactDescription` entity to support providing descriptions with links (eg in a DataLink output)
- add `Artifact.descriptionID` to refer to a shared `ArtifactDescription`

## radio support
For radio observations, many properties such as field-of-view, spatial and spectral resolution are dependent on frequency. Modern, wideband facilities can have large frequency-dependent variation in these properties within a single observation.

- propose `Plane.position.energyDependent` (Boolean) to flag that variable position information varies with energy (as opposed to some other reason)

This flag would clarify the meaning of minBounds, maxAngularScale, and resolutionBounds; it is unclear if this is really needed here and it does not look necessary for energy and time axes.

- add `Plane.position.minBounds` (Shape) to describe variable coverage (bounds is already max bounds)
- add `Plane.position.maxAngularScale` (Interval) to describe min/max scale of signal/objects in the data; could be in Plane.metrics?
- add `Plane.energy.resolution` (double) to describe the absolute resolution (representative value, probably mean/pixel)
- add `Plane.energy.resolutionBounds` (Interval) to describe the min/max absolute resolution when it varies across the data
- add `Plane.time.exposureBounds` (Interval) to describe the min/max absolute exposure time when it varies across the data
- remove `Plane.position.timeDependent` as it was only used to explain why Plane.position.bounds was null because of tracking mode

- add `Observation.telescope.trackingMode` and refer to a non-existent IVOA vocabulary to describe the
tracking/pointing of the telescope during the observation; null indicates sidereal tracking (for backwards compat)

- add `Plane.uv` (Visibility) to describe UV-plane (expect: only used when dataProductType=visibility)
- add `Plane.uv.distance` (Interval) to describe the min and max distance in the UV plane
- add `Plane.uv.distributionEccentricity` (double); mandatory or optional within Visibility?
- add `Plane.uv.distributionFill` (double); mandatory or optional within Visibility?

- replace PolarizationState (enum) with PolarizationState vocabulary and refer to a non-existent IVOA vocabulary that could be extracted from WCS, ObsCore, and community usage/extensions

## identifiers
- replace `Observation.observationID` (String) with `Observation.uri` (URI) to be the complete self contained identifier; values would be used in `DerivedObservation.members` to refer to other observations

- replace `Plane.productID` (String) with `Plane.uri` (URI) to be the complete self-contained identifier; values would be used in `Plane.provenance.inputs` to refer to other planes
- remove `Plane.creatorID` because it is essentially redundant vs Plane.uri

A `publisherID` value is strictly outside the core model because the value must be changed (generated) when CAOM metadata is synced from one _publisher_ to _a differnt publisher_.

## reconcile with IVOA data models

- change `Plane.dataProductType` to refer directly to the IVOA product-type vocabulary
- change `Artifact.productType` to refer directly to the IVOA DataLink Core (semantics) vocabulary
- change `Plane.observable.ucd` to refer directly to IVOA UCD1+

- add `Plane.position.calibration` and refer to a non-existent IVOA vocabulary that could be extracted from the ObsCore optional section
- add `Plane.energy.calibration` (as above)
- add `Plane.time.calibration` (as above)
- add `Plane.observable.calibration` (as above)
12 changes: 5 additions & 7 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -1,16 +1,14 @@
plugins {
id 'net.ivoa.vo-dml.vodmltools' version '0.5.5'
id 'java'
id 'checkstyle'
id "com.github.eerohele.saxon-gradle" version "0.2.1"
}

repositories {
mavenCentral()
mavenLocal()
}

sourceCompatibility = 1.8
vodml {

}
group = 'org.opencadc'

version = '2.4'
Expand Down Expand Up @@ -49,9 +47,9 @@ xslt {
}

dependencies {
testCompile 'org.opencadc:cadc-vodml:[1.0.9,1.1)'
testImplementation 'org.opencadc:cadc-vodml:[1.0.9,1.1)'

testCompile 'junit:junit:4.13'
testImplementation 'junit:junit:4.13'
}

apply from: 'opencadc.gradle'
Expand Down
Binary file modified gradle/wrapper/gradle-wrapper.jar
Binary file not shown.
4 changes: 3 additions & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.3-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
Loading