-
Notifications
You must be signed in to change notification settings - Fork 7
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
TG2-AMENDMENT_GEODETICDATUM_ASSUMEDDEFAULT #102
Comments
Comment by Paul Morris (@chicoreus) migrated from spreadsheet: |
Parameter, as @ArthurChapman pointed out in #178 is which geodetic datum to use, not which vocabulary of geodetic datums to use.
Can only be interpreted as dwc:geodeticDatum is assumed to be "http://epsg.io" when not specified. This is clearly nonsensical, the default value should be WGS84, or the appropriate EPSG code, probably EPSG:4326. Parameter is definitely needed but should be:
or
With the notes specifying that the geodetic datum is taken from the http://epsg.io/ vocabulary.... |
@chicoreus This is the default sourceAuthority not the default value - so the value should be a value within that default source authority - whether it is ESPG:4326 (WGS84), EPSG:4674 (SIRGAS2000) or EPSG:7844 (GDA2020), etc. What you are testing for is a value in the field that is consistent with the a value in http://epsg.io/ - the same as you look for a country code in the ISO standard. On thinking about it - probably doesn't need to be Paramaterized and just accept that authority as THE authority. |
@ArthurChapman - you raise a nice distinction: A source (in this case again unique), but then the default value, of which there can be plenty. I can see therefore two scenarios for Parameterised?
|
@Tasilee This is the case for all tests (especially NOTSTANDARD and STANDARDIZED tests) that use an external Standard - ISO, DCMI, in this case EPSG, of any Vocabulary. The vocabulary, standard, etc. is the bdq:sourceAuthority and you are checking to see if the value in the record is a valid record in the bdq:sourceAuthority (in the case of Validations) or can be amended to conform with a value in the bdq:sourceAuthority (in the case of Amendments). In nearly all cases, there is only one sourceAuthority (except as @chicoreus mentions with Taxon names), so there is no choice of sourceAuthority needed, only the choice of a value from that sourceAuthority. Those few cases where there is a choice of sourceAuthority (taxon names) brings in both your 1) and 2) above. Thus, I agree with @chicoreus that we don't need as many Paramaterized tests as we have previously so tagged. Unless @tucotuco has justifications for them that we have not thought of. |
Phrasing of Amended text is unclear. Don't know how to interpret the comma:
Perhaps
|
I commented in @chicoreus email of September 1. We do need to standardize the phrasing. |
I just checked the editing history - back in August last year the wording had a "therefore" after the comma |
Sounds good to me. I've edited the ER as issues to discuss/fix are building. |
@ArthurChapman: I think this IS parameterised as it requires a default value for dwc:geodeticDatum? The Parameter isn't EPSG as a sourceAuthority, but which EPSG code is the default? The Example should have the assumption, e.g., "dwc:geodeticDatum is NULL and has been assumed EPSG:4326"? |
In line with recent discussions, there is ONE dq:sourceAuthority for the GDs, epsg.io, therefore that isn't a Parameter. In this case, why are we even including "specified source authority" other than than in References and possibly Notes to recommend use of EPSG codes? There is no need to access the source authority in the Expected response, simply to look up the Parameter value, e.g., EPSG:4326 as this is implementation dependent. There is no need for "EXTERNAL_PREREQUISITES_NOT_MET". I would also suggest amending the example to "dwc:geodeticDatum is NULL, so amended to dwc:geodetciDatum EPSG:4326". |
@Tasilee Parameterized as different users might want different defaults. This one is appropriate to have a parameter. |
No, @Tasilee - you still have to go to an external source to look up the EPSG Code - so if the EPSG Server is down, then the EXTERNAL_PREREQUISITES_NOT_MET because the bdq:sourceAuthority (i.e. epsg.io) could not be found. @chicoreus - it is not Paramaterized, because there is only one bdq:sourceAuthority, therefore there is no other Parameter that one can chose - we are only using the EPSG codes |
Removed reference to bdq:sourceAuthority from Source Authority |
Corrected typo in information elements s/dwc:decimatitude/dwc:decimalLatitude/ |
…-06-28) specifications. Addressing tdwg/bdq#102 AMENDMENT_GEODETICDATUM_ASSUMEDDEFAULT adding implementation of 5 degree cell lookup table for coordinate uncertainty addition from unknown datum to WGS84 derived from VertNet georeferencing calculator. Added missing parameters to amendmentGeodeticdatumAssumeddefault(), a default implementation, and minimal unit tests.
After @chicoreus email July 25 2023, I changed the Positive example from FILLED_IN to AMENDED. |
Don't we use AMENDED where a value has been altered, and FILLED_IN where the field was empty and we added something - see definitions in #152. I believe for consistency this should be FILLED_IN - not sure I saw @chicoreus email. |
@ArthurChapman This one is more complex than usual, and almost calls for a richer response structure. When only an empty geodeticDatum is filled in, then response.status is FILLED_IN, but if a value is present in coordinateUncertaintyInMeters and an empty geodeticDatum is filled in then the coordinateUncertaintyInMeters is ammended to add the uncertainty between any datum and the specified default at the specified latitude/longitude, and the response.status becomes AMENDED. |
Thanks @chicoreus - understood. |
Splitting bdqffdq:Information Elements into "Information Elements ActedUpon" and "Information Elements Consulted". Also changed "Field" to "TestField", "Output Type" to "TestType" and updated "Specification Last Updated" |
Changed Expected response from If dwc:geodeticDatum is EMPTY, fill in the value of dwc:geodeticDatum with the value of bdq:defaultGeodeticDatum, report FILLED_IN and, if dwc:coordinateUncertaintyInMeters, dwc:decimalLatitude and dwc:decimalLongitude are NOT_EMPTY, amend the value of dwc:coordinateUncertaintyInMeters by adding the maximum datum shift between the specified bdq:defaultGeodeticDatum and any other datum at the provided dwc:decimalLatitude and dwc:decimalLongitude and instead report AMENDED; otherwise NOT_AMENDED. to INTERNAL_PREREQUISITES_NOT_MET if dwc:geodeticDatum is not EMPTY; FILLED_IN dwc:geodeticDatum using the value of bdq:defaultGeodeticDatum, report FILLED_IN and, if dwc:coordinateUncertaintyInMeters, dwc:decimalLatitude and dwc:decimalLongitude are NOT_EMPTY, amend the value of dwc:coordinateUncertaintyInMeters by adding the maximum datum shift between the specified bdq:defaultGeodeticDatum and any other datum at the provided dwc:decimalLatitude and dwc:decimalLongitude and instead report AMENDED; otherwise NOT_AMENDED. |
Changed dwc:decimalLatitude and dwc:decimaLongitude from Information Elements ActedUpon to Information Elements Consulted. |
…s for another test: tdwg/bdq#102.
Issue seen with validation failures on updated test implementation not meeting "NOT_AMENDED" expectations in @Tasilee validation sheet v94: This and #75 are "AssumedDefault" tests for which non-empty values aren't preventing execution of the test, that should probably both have the internal prerequisites clause removed and be able to reach the NOT_AMENDED clause: FILLED_IN dwc:geodeticDatum using the value of bdq:defaultGeodeticDatum, report FILLED_IN and, if dwc:coordinateUncertaintyInMeters, dwc:decimalLatitude and dwc:decimalLongitude are bdq:NotEmpty, amend the value of dwc:coordinateUncertaintyInMeters by adding the maximum datum shift between the specified bdq:defaultGeodeticDatum and any other datum at the provided dwc:decimalLatitude and dwc:decimalLongitude and instead report AMENDED; otherwise NOT_AMENDED. |
As discussed under #59, I think that this test could be improved by adding "not recorded" and "unknown" as equivalents to Empty and thus filled in with the default INTERNAL_PREREQUISITES_NOT_MET if dwc:geodeticDatum is bdq:NotEmpty or included "not recorded" or "unknown"; (1) FILLED_IN dwc:geodeticDatum using the value of bdq:defaultGeodeticDatum, report FILLED_IN and, if dwc:coordinateUncertaintyInMeters, dwc:decimalLatitude and dwc:decimalLongitude are bdq:NotEmpty, (2) if the value in dwc:geodeticDatum is either "not recorded" or "unknown", amend the value of dwc:geodeticDatum using the value of bdq:defaultGeodeticDatum, report AMENDED and, (3) if dwc:coordinateUncertaintyInMeters, dwc:decimalLatitude and dwc:decimalLongitude are bdq:NotEmpty, amend the value of dwc:coordinateUncertaintyInMeters by adding the maximum datum shift between the specified bdq:defaultGeodeticDatum and any other datum at the provided dwc:decimalLatitude and dwc:decimalLongitude and instead report AMENDED; otherwise NOT_AMENDED. |
Given my comments on #59, if dwc:geodeticDatum contains values such as "unknown" or "not recorded", then it is effectively bdq:Empty so we have a case to trigger "AMENDED..." I'd suggest If ((1) bdq:geodeticDatum is bdq:Empty and dwc:coordinateUncertaintyInMeters, dwc:decimalLatitude and dwc:decimalLongitude are bdq:NotEmpty, FILLED_IN dwc:geodeticDatum using the value of bdq:defaultGeodeticDatum, report FILLED_IN or (2) if the value in dwc:geodeticDatum is either "not recorded" or "unknown", amend the value of dwc:geodeticDatum using the value of bdq:defaultGeodeticDatum, report AMENDED) and, if dwc:coordinateUncertaintyInMeters, dwc:decimalLatitude and dwc:decimalLongitude are bdq:NotEmpty, amend the value of dwc:coordinateUncertaintyInMeters by adding the maximum datum shift between the specified bdq:defaultGeodeticDatum and any other datum at the provided dwc:decimalLatitude and dwc:decimalLongitude and report AMENDED; otherwise NOT_AMENDED. |
@Tasilee it is absolutely not bdq:Empty, it contains a value with
meaning, not some form of empty value. The concepts are totaly
different.
…On Mon, 11 Nov 2024 13:21:48 -0800 Lee Belbin ***@***.***> wrote:
Given my comments on #59, if dwc:geodeticDatum contains values such
as "unknown" or "not recorded", then it is effectively bdq:Empty so
we have a case to trigger "AMENDED..." I'd suggest
|
Proposed change to the expected response is straightforward: FILLED_IN dwc:geodeticDatum using the value of bdq:defaultGeodeticDatum, report FILLED_IN and, if dwc:coordinateUncertaintyInMeters, dwc:decimalLatitude and dwc:decimalLongitude are bdq:NotEmpty, amend the value of dwc:coordinateUncertaintyInMeters by adding the maximum datum shift between the specified bdq:defaultGeodeticDatum and any other datum at the provided dwc:decimalLatitude and dwc:decimalLongitude and instead report AMENDED; otherwise NOT_AMENDED. This gives a path to the logical conclusion NOT_AMENDED if there is a value in dwc:geodeticDatum. Concerns about "not recorded" go elsewhere. |
Thanks @chicoreus but we are missing the need to check for bdq:Empty BEFORE FILLED_IN. I suggest If dwc:geodeticDatum is bdq:Empty, FILLED_IN dwc:geodeticDatum using the value of bdq:defaultGeodeticDatum, report FILLED_IN and, if dwc:coordinateUncertaintyInMeters, dwc:decimalLatitude and dwc:decimalLongitude are bdq:NotEmpty, amend the value of dwc:coordinateUncertaintyInMeters by adding the maximum datum shift between the specified bdq:defaultGeodeticDatum and any other datum at the provided dwc:decimalLatitude and dwc:decimalLongitude and instead report AMENDED; otherwise NOT_AMENDED. |
@Tasilee yes, something wasn't quite right in the original wording... I don't think we need the two FILLED_IN in the same clause, how about: If dwc:geodeticDatum is bdq:Empty, fill in dwc:geodeticDatum using the value of bdq:defaultGeodeticDatum, report FILLED_IN and, if dwc:coordinateUncertaintyInMeters, dwc:decimalLatitude and dwc:decimalLongitude are bdq:NotEmpty, amend the value of dwc:coordinateUncertaintyInMeters by adding the maximum datum shift between the specified bdq:defaultGeodeticDatum and any other datum at the provided dwc:decimalLatitude and dwc:decimalLongitude and instead report AMENDED; otherwise NOT_AMENDED. Wording still seems a bit awkward. |
Your rendition looks ok to me, even I can understand it. I'll apply it now. |
Corrected typo in description. |
…5-03-03, updating test metadata and implementations for tdwg/bdq#54, tdwg/bdq#59, tdwg/bdq#102, and tdwg/bdq#60 to current specifications, including updates to unit tests (including compliant validation of dwc:geodeticDatum requires authority:number, not just bare number).
The text was updated successfully, but these errors were encountered: