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

Proposed static spec #33

Merged
merged 7 commits into from
Nov 28, 2017
Merged

Proposed static spec #33

merged 7 commits into from
Nov 28, 2017

Conversation

jeffnaus
Copy link
Contributor

@jeffnaus jeffnaus commented Nov 9, 2017

I don't expect this to be accepted as is, I'm opening this PR to generate discussion

Two general things I did:
I named the spec the "spatiotemporial_feature" to differentiate our elaborated feature from the generic geojson feature.
I also named my timestamp fields "startDateTime" and "endDateTime". There are a lot of minor differences between "start_time", "start_date" and various other forms. So I figured I'd just try to throw down a standard we can all start using.

I also included examples of features for some of our DG datasets which shows how I am thinking currently. I'll updates as the discussion evolves.

@cholmes
Copy link
Contributor

cholmes commented Nov 15, 2017

Hey Jeff, apologies it took some time to review this. There's a lot I like there. I'll put some questions in on individual files.

I like the concept of the 'acquisition', as the parent of the other two. Am I right in understanding that DG wouldn't ever make the files of the acquisition accessible to users, but that it's the root set of information that all the products are made from?

The one bigger concept I'm curious about your take on is whether we should try to streamline repeating information. Like having the band information in every record seems like a lot - could we just link to the WORLDVIEW02 platform name and have it contain the band information. And then hopefully clients could start to recognize the link and know they don't need to resolve it each time.

Or maybe we even just start to have the notion of a non-repeating end point, where we link to the 'sensor' resource. I like how http://jsonapi.org/ does it in an active API, where the sub-resources always have a link to their independent representation.

I like the notion of defining a spatiotemporal feature, and validating the schema against it. The thing it brings up for me is how we make it clear which fields are the spatiotemporal feature fields, and which ones are added on by a vendor. I think ideally we define the core pretty narrowly but have lots of flexibility for providers to put a lot more data in. Though I think we may want to get to some best practice recommendations, like do we tell people to just reference all their side metadata, or to put it all into JSON. And if they put it all into JSON do they try to flatten it, or just use nested structures like in the NAIP 'source metadata' - https://github.com/radiantearth/stac-spec/blob/feature/add-flat-file-spec/spec/json/examples/naip-item.json

Copy link
Contributor

@cholmes cholmes left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Various comments on different lines of the PR

"Acquisition",
"DigitalGlobeAcquisition",
"WV02"
],
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is the idea in the feature_type that the above feature_type's would all have schemas that fields in this record would validate against? Or is it just meant to be informative in some way?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That list is more because that is how our current catalog "tags" the records, so that you can search for and find all WV02 related records (not just acquisitions) for instance. There is a singular type, DigitialGlobeAcquisition that this record would validate against.

}
],
"schema": "DigitalGlobeProduct",
"type": [
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this supposed to be feature_type ? The other two use that term. Or I'm missing some subtlety as to why this is different.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, I wasn't sure what we finally decided on for the name of the field. Schema, type, product.....

},
"assets": [
{
"uri": "https://15NOV09180446-M1BS-056823192010_01_P002.TIF",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would these link to a real location? Or are they just supposed to unique references? Like in a production version would this be a real url that a user (with appropriate rights) would follow?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, they would link to actual URLs. I just truncated this example.

"href": "https://15NOV09180446-M1BS-056823192010_01_P002.JPG"
},
{
"rel": "acquisition",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like this, I feel like it'd be good to have some 'best practice' relation links that map out the structures of imagery.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

And that relationship would link back to the acquisition catalog record.

@cholmes cholmes merged commit fccf627 into radiantearth:dev Nov 28, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants