<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Tue, Aug 1, 2017 at 1:26 PM, David Johnson <span dir="ltr"><<a href="mailto:d.johnson@metocean.co.nz" target="_blank">d.johnson@metocean.co.nz</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>We have released version 0.2 of our CF-JSON spec (<a href="http://cf-json.org/specification" target="_blank">http://cf-json.org/<wbr>specification</a>) to merge with the NCO format. So CF-JSON is now consistent with NCO JSON output. CF-JSON does not currently *require* all of the NCO JSON elements, but NCO JSON is valid CF-JSON. </div></div></blockquote><div><br></div><div>nice work!</div><div><br></div><div>-CHB</div><div><br></div><div><br></div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>The intention is to try and stay compatible with the NCO going forward, providing there are no major breaking changes. So now we are down to 2 specifications. </div><div><br></div><div>We can continue the covJSON discussion on their github repo.</div><div><br></div><div><br></div></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Jul 27, 2017 at 5:17 PM, David Johnson <span dir="ltr"><<a href="mailto:d.johnson@metocean.co.nz" target="_blank">d.johnson@metocean.co.nz</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">My bad:<div><span style="color:rgb(0,0,0);font-family:"Times New Roman";font-size:medium">"As of version 4.6.3, </span><acronym style="color:rgb(0,0,0);font-family:"Times New Roman";font-size:medium">NCO</acronym><span style="color:rgb(0,0,0);font-family:"Times New Roman";font-size:medium"> defaults to demarcate inner dimensions of variable data with (nested) square brackets rather than printing data as an unrolled single dimensional array."</span><br></div><div><span style="color:rgb(0,0,0);font-family:"Times New Roman";font-size:medium"><br></span></div><div><span style="color:rgb(0,0,0);font-family:"Times New Roman";font-size:medium">So we will seriously consider the change of data location, "dimensions" to "shape", and then CF-JSON=NCO v4.6.3+ lvl0  (I think...)</span><br></div><div><span style="color:rgb(0,0,0);font-family:"Times New Roman";font-size:medium"><br></span></div><div><span style="color:rgb(0,0,0);font-family:"Times New Roman";font-size:medium">This would at least bring these two together with minimal effort. </span></div><div><span style="color:rgb(0,0,0);font-family:"Times New Roman";font-size:medium"><br></span></div><div><span style="color:rgb(0,0,0);font-family:"Times New Roman";font-size:medium">The bigger potential merge and or migration to CovJSON is another question.</span></div><div><span style="color:rgb(0,0,0);font-family:"Times New Roman";font-size:medium"><br></span></div><div><span style="color:rgb(0,0,0);font-family:"Times New Roman";font-size:medium">Just to be clear, we have no real agenda to promote any particular scheme, but do need a stable specification to give to API customers. And happy to help out with publicizing and tooling a community decision.</span><span style="color:rgb(0,0,0);font-family:"Times New Roman";font-size:medium"><br></span></div><div><span style="color:rgb(0,0,0);font-family:"Times New Roman";font-size:medium"><br></span></div><div><span style="color:rgb(0,0,0);font-family:"Times New Roman";font-size:medium">Further development of these ideas is probably getting outside the intended purpose of this list, so someone feel free to boot this conversation elsewhere.</span></div><div><span style="color:rgb(0,0,0);font-family:"Times New Roman";font-size:medium"><br></span></div><div><br></div><div><span style="color:rgb(0,0,0);font-family:"Times New Roman";font-size:medium"><br></span></div><div><span style="color:rgb(0,0,0);font-family:"Times New Roman";font-size:medium"><br></span></div><div><font color="#000000" face="Times New Roman" size="3"><br></font></div><div><font color="#000000" face="Times New Roman" size="3"> </font></div><div><br></div></div><div class="m_-2682836056554756476HOEnZb"><div class="m_-2682836056554756476h5"><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Jul 27, 2017 at 4:33 PM, David Johnson <span dir="ltr"><<a href="mailto:d.johnson@metocean.co.nz" target="_blank">d.johnson@metocean.co.nz</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi All,<div><br></div><div>The CF-JSON structure was generally based on CDL (as produced by ncdump) which stores the data in a separate section. The key requirement is the same as for CDL.</div><div><br></div><div>But I do see the logic of just including it in the variable section itself. </div><div><br></div><div>I haven't had a chance to properly review NCO JSON, but it sounds like we may be very close. This Is there a published specification anywhere? - so far I have just looked at various actual file dumps.</div><div><br></div><div>One thing I prefer about CF-JSON is the multidimensional arrays. Both NCO and CovJSON have flattened arrays (as does CDL). I think web devs would probably prefer the former and there is less chance of an array wrangling mistake. I also like the option to dump time as ISO8601 because again I think web devs appreciate the ease of this rather than having to support time conversions and calendar issues.<br></div><div><br></div><div>We are at an early stage so could easily merge.</div><div><br></div><div>Dave</div></div><div class="gmail_extra"><div><div class="m_-2682836056554756476m_-1902000003685183001h5"><br><div class="gmail_quote">On Thu, Jul 27, 2017 at 12:30 PM, Chris Barker <span dir="ltr"><<a href="mailto:chris.barker@noaa.gov" target="_blank">chris.barker@noaa.gov</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Just looked a tiny bit more at CF_JSON, and see an issue right away:<div><br></div><div>"The data object contains the actual data for each variable as its key:value members. Each data key MUST be the same as it variable ID key."<br><div><br></div><div><pre style="box-sizing:border-box;overflow:auto;font-family:Menlo,Monaco,Consolas,"Courier New",monospace;font-size:13px;padding:9.5px;margin-top:0px;margin-bottom:10px;line-height:1.42857;color:rgb(51,51,51);word-break:break-all;word-wrap:break-word;background-color:rgb(245,245,245);border:1px solid rgb(204,204,204);border-radius:4px"><code class="m_-2682836056554756476m_-1902000003685183001m_2715181139898311849m_-6000347337680447770gmail-language-Javascript" style="box-sizing:border-box;font-family:Menlo,Monaco,Consolas,"Courier New",monospace;font-size:inherit;padding:0px;color:inherit;background-color:transparent;border-radius:0px;white-space:pre-wrap">{
    ...
    "variables": {
        "tmp2m": {
            "dimensions": ["time","latitude","longitude"<wbr>]
        }
    ...
    "data": {
        "tmp2m": [
            [[1.2,3.4,5.6 ...],
             [2.3,6.5,8.7 ...],
             ...
            ],
        ]
    ...
}</code></pre></div></div><div class="gmail_extra">JSON can be arbitrarily nested -- so why store the "data" object separately from the variable objects, using a key to map them?</div><div class="gmail_extra"><br></div><div class="gmail_extra">why not:</div><font face="monospace, monospace"><br>{<br>    ...<br>    "variables": { "tmp2m": {"dimensions": ["time","latitude","longitude"<wbr>]<br>                             "attributes": {"units": "ms^{-1}",<br>                                            "long_name": "Easterly component of wind",<br>                                            "standard_name": "eastward_wind"<br>                                            },<br></font><div><font face="monospace, monospace">                             "data": [[1.2,3.4,5.6 ...],<br>                                      [2.3,6.5,8.7 ...],<br>                                      ...<br>                                     ],<br>                             },<br>                             ...</font><div><font face="monospace, monospace">                 }<br>}<br><br></font><div class="gmail_extra">I think that's more or less how NCO's JSON works, and it keeps everything about a variable all in one place -- easier for parsing tools, etc. And maps well to the Python netCDF4 data structure anyway.</div><div class="gmail_extra"><br></div><div class="gmail_extra">-CHB</div><span><div class="gmail_extra"><br></div><div class="gmail_extra"><br></div><div class="gmail_extra">-- <br><div class="m_-2682836056554756476m_-1902000003685183001m_2715181139898311849m_-6000347337680447770gmail_signature"><br>Christopher Barker, Ph.D.<br>Oceanographer<br><br>Emergency Response Division<br>NOAA/NOS/OR&R            <a href="tel:(206)%20526-6959" value="+12065266959" target="_blank">(206) 526-6959</a>   voice<br>7600 Sand Point Way NE   <a href="tel:(206)%20526-6329" value="+12065266329" target="_blank">(206) 526-6329</a>   fax<br>Seattle, WA  98115       <a href="tel:(206)%20526-6317" value="+12065266317" target="_blank">(206) 526-6317</a>   main reception<br><br><a href="mailto:Chris.Barker@noaa.gov" target="_blank">Chris.Barker@noaa.gov</a></div>
</div></span></div></div></div>
</blockquote></div><br><br clear="all"><div><br></div></div></div><span class="m_-2682836056554756476m_-1902000003685183001HOEnZb"><font color="#888888">-- <br></font></span><div class="m_-2682836056554756476m_-1902000003685183001m_2715181139898311849gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><span class="m_-2682836056554756476m_-1902000003685183001HOEnZb"><font color="#888888"><div dir="ltr"><br></div></font></span><div dir="ltr"><table border="0" cellpadding="0" cellspacing="0" width="400" style="font-family:"Times New Roman";table-layout:fixed"><tbody><tr><td align="left" valign="middle" width="127"><p style="margin-bottom:2px;margin-right:10px;font-family:Verdana,Geneva,sans-serif;line-height:10px"><a href="http://www.metocean.co.nz/" style="text-decoration:none" target="_blank"><font size="1"><img src="https://ui.metoceanview.com/dist/images/msl2.png" alt="MetOcean Solutions Ltd" border="0" height="80" width="114"></font></a></p></td><td align="left" valign="middle" nowrap width="300" height="1px"><p style="font-family:Verdana,Geneva,sans-serif"><span style="color:rgb(33,33,33);line-height:15px"><b><font size="2">Dr David Johnson</font></b></span><span style="line-height:12px;color:rgb(33,33,33);margin-bottom:5px"><br><font size="2">Technical Director <br></font></span><font size="2"><a href="http://+6467585035/" style="line-height:12px;margin-bottom:5px;text-decoration:none;border:none;color:rgb(33,33,33)" target="_blank">t: +64 7 825 0540 ext.1</a>02 <br><a href="http://+64276853473/" style="line-height:12px;margin-bottom:5px;text-decoration:none;border:none;color:rgb(33,33,33)" target="_blank">m: +64 2</a>1 057 1058<br><a href="http://www.metocean.co.nz/" style="color:rgb(33,33,33);line-height:20px;text-decoration:none;display:inline" target="_blank">www.metocean.co.nz</a></font></p></td></tr></tbody></table></div></div></div></div></div></div></div></div></div>
</div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="m_-2682836056554756476m_-1902000003685183001gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div dir="ltr"><br></div><div dir="ltr"><table border="0" cellpadding="0" cellspacing="0" width="400" style="font-family:"Times New Roman";table-layout:fixed"><tbody><tr><td align="left" valign="middle" width="127"><p style="margin-bottom:2px;margin-right:10px;font-family:Verdana,Geneva,sans-serif;line-height:10px"><a href="http://www.metocean.co.nz/" style="text-decoration:none" target="_blank"><font size="1"><img src="https://ui.metoceanview.com/dist/images/msl2.png" alt="MetOcean Solutions Ltd" border="0" height="80" width="114"></font></a></p></td><td align="left" valign="middle" nowrap width="300" height="1px"><p style="font-family:Verdana,Geneva,sans-serif"><span style="color:rgb(33,33,33);line-height:15px"><b><font size="2">Dr David Johnson</font></b></span><span style="line-height:12px;color:rgb(33,33,33);margin-bottom:5px"><br><font size="2">Technical Director <br></font></span><font size="2"><a href="http://+6467585035/" style="line-height:12px;margin-bottom:5px;text-decoration:none;border:none;color:rgb(33,33,33)" target="_blank">t: +64 7 825 0540 ext.1</a>02 <br><a href="http://+64276853473/" style="line-height:12px;margin-bottom:5px;text-decoration:none;border:none;color:rgb(33,33,33)" target="_blank">m: +64 2</a>1 057 1058<br><a href="http://www.metocean.co.nz/" style="color:rgb(33,33,33);line-height:20px;text-decoration:none;display:inline" target="_blank">www.metocean.co.nz</a></font></p></td></tr></tbody></table></div></div></div></div></div></div></div></div></div>
</div>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="m_-2682836056554756476gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div dir="ltr"><br></div><div dir="ltr"><table border="0" cellpadding="0" cellspacing="0" width="400" style="font-family:"Times New Roman";table-layout:fixed"><tbody><tr><td align="left" valign="middle" width="127"><p style="margin-bottom:2px;margin-right:10px;font-family:Verdana,Geneva,sans-serif;line-height:10px"><a href="http://www.metocean.co.nz/" style="text-decoration:none" target="_blank"><font size="1"><img src="https://ui.metoceanview.com/dist/images/msl2.png" alt="MetOcean Solutions Ltd" border="0" height="80" width="114"></font></a></p></td><td align="left" valign="middle" nowrap width="300" height="1px"><p style="font-family:Verdana,Geneva,sans-serif"><span style="color:rgb(33,33,33);line-height:15px"><b><font size="2">Dr David Johnson</font></b></span><span style="line-height:12px;color:rgb(33,33,33);margin-bottom:5px"><br><font size="2">Technical Director <br></font></span><font size="2"><a href="http://+6467585035/" style="line-height:12px;margin-bottom:5px;text-decoration:none;border:none;color:rgb(33,33,33)" target="_blank">t: +64 7 825 0540 ext.1</a>02 <br><a href="http://+64276853473/" style="line-height:12px;margin-bottom:5px;text-decoration:none;border:none;color:rgb(33,33,33)" target="_blank">m: +64 2</a>1 057 1058<br><a href="http://www.metocean.co.nz/" style="color:rgb(33,33,33);line-height:20px;text-decoration:none;display:inline" target="_blank">www.metocean.co.nz</a></font></p></td></tr></tbody></table></div></div></div></div></div></div></div></div></div>
</div>
</div></div><br>______________________________<wbr>_________________<br>
CF-metadata mailing list<br>
<a href="mailto:CF-metadata@cgd.ucar.edu">CF-metadata@cgd.ucar.edu</a><br>
<a href="http://mailman.cgd.ucar.edu/mailman/listinfo/cf-metadata" rel="noreferrer" target="_blank">http://mailman.cgd.ucar.edu/<wbr>mailman/listinfo/cf-metadata</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><br>Christopher Barker, Ph.D.<br>Oceanographer<br><br>Emergency Response Division<br>NOAA/NOS/OR&R            (206) 526-6959   voice<br>7600 Sand Point Way NE   (206) 526-6329   fax<br>Seattle, WA  98115       (206) 526-6317   main reception<br><br><a href="mailto:Chris.Barker@noaa.gov" target="_blank">Chris.Barker@noaa.gov</a></div>
</div></div>