111 Matching Annotations
  1. Mar 2018
    1. x_axis_type='datetime',

      Please add x and y axis labels to these plots. It looks like the x-axis is "Date (month/day)" and the y-axis is "Water Surface Height Above Reference Datum (m)"

    1. can be used to obtain the info and search URLs respectively

      "that can be used to obtain the info and search URLs respectively"

      Added "that"

    2. Feeding these variable in the erddapy.ERDDAP class we will create the URL builder object.

      "Feeding these variables in the erddapy.ERDDAP class we will create the URL builder object."

      I made variable plural with an "s"

    3. This notebook walks through an easy to set up an ERDDAP RESTful URL by using the python client, erddapy.

      "This notebook walks through an easy to set up ERDDAP RESTful URL by using the python client, erddapy."

      I deleted an extra "an"

    4. In fact that is such a common operation that erddapy brings its own method for this. In the next three cells we request the variables names that has a cdm_profile_variables, a standard_name of sea_water_temperature, and an axis respectively.

      In fact, that is such a common operation that erddapy brings its own method for filtering data by attributes. In the next three cells we request the variables names that has a cdm_profile_variables, a standard_name of sea_water_temperature, and an axis respectively."

    5. One can build the proper variables programmatically, feed them in erddapy, and build a service like this notebook. However, erddapy is also designed for interactive work. One can explore interactively the ERDDAP server from Python. PS: note that we did not feed any variable but for the server URL here.

      "One can build the proper variables programmatically, feed them in erddapy, and then build a service like this notebook. However, erddapy is also designed for interactive work. One can explore interactively the ERDDAP server from Python.

      PS: Note that in this example below we did not feed any variables other than the server URL."

    6. In addition to the .get_download_url() method the object has .get_info_url() and get_search_url() to obtain the info and search URLs respectively.

      "Additionally, the object has .get_info_url() and get_search_url() can be used to obtain the info and search URLs respectively."

    7. .

      You have introduced the problem. Now you should tell folks how this notebook is will address a work-around for this challenge. Add something like this ...

      "This notebook walks through an easy to set up an ERDDAP RESTful URL by using the python client, erddapy."

  2. Feb 2018
    1. the drop around 2010 seems troublesome.

      Do you investigate why the drop was so sudden? The next set of code is about creating maps. We should add context to the notebook story as to why we are making maps. Is it to investigate the drop in Dermochelys and Chelonia? What might be the cause in the drop of these 2 species?

    1. We will create

      Add for context:

      "IOOS recommends to data providers that their netCDF files follow the CF-1.6 standard. In this notebook we will create a CF-1.6 compliant file that follows... "

  3. Dec 2017
    1. %matplotlib inline

      We should put a comment above this cell to explain that now we make our plot. This is to avoid confusion with the note above cell 16

    2. bay area.

      We should tell folks what bay it is:

      "San Francisco Bay area"

      We should also label the vector units and put a title on the plot(s) with the dates of the data being displayed.

  4. Nov 2017
    1. The "bag" consists of arbitrary content and "tags," the metadata files.

      We should add a sentence describing what folks use BagIt for ...

      "The BagIt function is a great way to bundle files together. You can use BagIt to pull files together to archive with NCEI."

  5. Oct 2017
    1. We can limit to the 3 genus with higher biomass values, Acropora, Dendrogyra, and Orbicella to make it easier to understand the biomass distribution.

      I was thinking here that we could do 3 plots to compare where the top 3 species have the greatest biomass. Do they prefer different parts of the keys or do they tend to have high biomass in the same areas? Then we could hypothesize what makes particular parts of the keys successful environments for these top 3 species.

    2. 'viridis_r',

      Is there are reason why you chose this critter? You started looking at Acropora cervicornis. We should pick a species and stick with it.

      Acropora cervicornis is Staghorn coral :http://www.iucnredlist.org/details/133381/0 If we stick with that we should put this link in the markdown.

      Perhaps we make 3 plots of the top 3 most abundant species and compare where they occur?

    3. habitat.

      While Dendrogyra and Orbicella species of coral prefer a back reef and fore reef environments, Acrpopora prefer mid-reef slopes and lagoons with minimal wave action.

    4. quantificationValue has a lot of zero values

      The reason there are zero values is because there are no species of that species on that name at that location.

    5. quantificationValue

      We need to explain what this means. The ERDDAP comments indicate that this is "Observed spatial coverage of coral species" in terms of unit-less biomass. Can you pull the string comment and string description for this parameter and add it to the markdown just below In[4]?

    6. fig.colorbar(c, shrink=0.75, extend='both')

      Please label the colorbar, :) Also, Please put a title on the plot so people know what your are plotting.

  6. Sep 2017
    1. We can observe the sea level retreating around 10-Sep 9:00 and then a significant surge after 19:00. The lower winds at beginning of the surge is probably the eye of the hurricane.

      WOW! We need to label the left and right y-axes so folks can tell which axis is for each line.

    2. Let's take a look at some stations to see if the data is OK. Below we have a station in Naples, Gulf of Mexico.

      "Let's take a look at some stations to see if the data is OK. Below we have a station in Naples, FL along the Gulf of Mexico."

    3. As we did before now we need o set all the parameters for the filter: the units for the observations, the bounding box, and the SOS name for the variable of interest. So we can use pyoos to assemble a collector to download the data and download into a pandas DataFrame.

      "Now we need to set all the parameters for the filter: the units for the observations, the bounding box, and the SOS name for the variable of interest. Next, we can use pyoos to assemble a collector to download the data into a pandas DataFrame."

  7. Aug 2017
    1. Mean chla values

      'Mean chla values (' $\mu 'g/l)

      Basically put the units in the title (milligrams/l) - the greek symbol "mu" grams per liter

    2. scale_colour_gradient(limits = c(0.0, 0.32), 'Chla') +

      Can we get a rainbow colorbar here? Something with more distinguishable colors in the gradient than just blue.

    3. Note the that xlen=0.2 and ylen=0.2 is the bounding box for finding the data around the desired positions.

      Ok ... why? What does xlen and ylen stand for? 0.2 what?

      We should clarify

    4. xtractomatic

      We should provide a better intro to what xtractomatic is.

      Perhaps we title this notebook: "Using the xtractomatic R package to extract tagged fish data along a track line" pr is that too long?

      Maybe "Using the xtractomatic R package to track Pacific Blue Marlin"

    5. The xtractomatic package

      This is from the GitHub page:

      "xtractomatic is an R package developed to subset and extract satellite and other oceanographic related data from a remote server. The program can extract data for a moving point in time along a user-supplied set of longitude, latitude and time points; in a 3D bounding box; or within a polygon (through time). The xtractomatic functions were originally developed for the marine biology tagging community, to match up environmental data available from satellites (sea-surface temperature, sea-surface chlorophyll, sea-surface height, sea-surface salinity, vector winds) to track data from various tagged animals or shiptracks."

      Perhaps we should also link the "xtractomatic package" to it's GitHub page?

    6. This is a "track-like" dataset with lon, lat, time arrays.

      "This is a "track-like" data set of the tagged marlin with lon, lat, time arrays."

  8. Jul 2017
    1. The cell below computes the speed from the velocity, we can use that to color code the vectors. Note that we re-create the vector velocity preserving the direction but using intensity of 1. (The same visualization technique used in the DAC.)

      "The cell below computes the speed from the velocity. We can use the speed computation to color code the vectors. Note that we re-create the vector velocity preserving the direction but using intensity of 1. (The same visualization technique used in the HF radar DAC.)"

    2. Now that we singled out the time want the data we trigger the download by accessing the data with xarray's .data property.

      "Now that we singled out the date and and time we want the data, we trigger the download by accessing the data with xarray's .data property."

    3. Now all we have to mask the NaNs and average over the area.

      "Now all we have to do is mask the missing data with NaNs and average over the area."

  9. Mar 2017
    1. )}

      We can add here '.vars=time|Water Temperature ^oC' and I think that should give the x and y axis labels ... I think ... based off the example :

      A sample graph URL is http://coastwatch.pfeg.noaa.gov/erddap/griddap/jplMURSST41.png?analysed_sst[(2015-05-01T09:00:00Z):(2015-06-01T09:00:00Z)][(29)][(-135)]&.draw=linesAndMarkers&.vars=time|analysed_sst|&.marker=1|3&.color=0xFF9900&.colorBar=|C|Linear|||

      in this documentation: http://coastwatch.pfeg.noaa.gov/erddap/griddap/documentation.html

    2. m = ax.set_xticklabels(['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Ago', 'Sep', 'Oct', 'Nov', 'Dec'])

      You should add a y-axis label here too. A title would be good also.

      Additionally, What is the y-axis? Why is February over 100? could we report this as a percentage of Significant Wave Height > 6' ?

    3. iframe = '<iframe src={src} width={width} height={height}></iframe>'.format HTML(iframe(src=url, width=width+5, height=height+5))

      We should label the axes better here. The y-axis should be "Water Temperature (^o C)". Also, what depth is this water temperature? We should state that in the axis label a well.

      The x-axis should read "Date in <current month=""> <current year=""> "

    4. Explore more datasets using the sensor map website!

      " This example tells us it is rough and cold out on George's Bank!

      To explore more datasets, use the IOOS sensor map website!"

    5. ERDDAP responses are very rich. There is even multiple image formats in the graph. Here is how to get a png for the temperature time-series with an arbitrary width/height.

      "ERDDAP responses are very rich. There are even multiple image formats in the graph. Here is how to get a .png file for the temperature time-series. While you can specify the width and height, we chose just an arbitrary size."

    6. There is also a built-in relative time functionality. Here we demonstrate that by getting the last 2 hours and displaying that with the HTML response in an IFrame.

      "Wow! Wintertime is pretty rough out on George's Bank!

      There is also a built-in relative time functionality so you can specify a specific time frame you look at. Here we demonstrate this part of the tool by getting the last 2 hours and displaying that with the HTML response in an IFrame."

    7. The data tabledap csvp response can be easily read by pandas read_csv.

      "Here is a cool part about this ERDDAP tabledap package - The data tabledap csvp response can be easily read by Python's pandas read_csv function. "

    8. Please check the documentation for more information on the various parameters and responses of ERDDAP.

      " * For more information on how to use tabledap, please check the documentation for more information on the various parameters and responses of ERDDAP."

    9. We want to bypass the forms and get the data by generating the URL "by hand" using the function we defined above. Below we have a query for Significant Wave Height from buoy 44011 starting at the begining of the year 2017.

      "Using the function we defined above, we can now bypass the forms and get the data by generating the URL "by hand". Below we have a query for Significant Wave Height from buoy 44011, a buoy on George's Bank off the coast of Cape Cod, MA, starting at the beginning of the year 2017."

    10. ERDDAP RESTful Web Services can be accessed via the Data Access Form or we can construct then endpoint with a simple Python function like the one below.

      "First, ERDDAP offers RESTful Web Services which allows one to construct a URL that brings the user back to a map already filtered with the data they are interested in. This RESTful service can be accessed via the ERDDAP Data Access Form or we can construct an endpoint with a simple Python function like the one below."

    11. ERDDAP also allows filtering the values of the variable. Let's get Wave Heights that are bigger than 6 meters for example starting from 2016. PS: note how we can lazily build on top of the previous query using Python's dictionaries.

      "ERDDAP also allows for filtering of the variable's values. For example, let's get Wave Heights that are bigger than 6 meters starting from 2016.

      *** Note how we can lazily build on top of the previous query using Python's dictionaries."

    12. Note that slicing the time dimension on the sever side is very fast when compared with an OPeNDAP request, download of the time dimension data, slice, and subsequent download of the actual data.

      "You may notice that slicing the time dimension on the sever side is very fast when compared with an OPeNDAP request. The downloading of the time dimension data, slice, and subsequent downloading of the actual data are all much faster."

    13. depth (m)

      We should explain that this table is just a short list of all the time stamped measurements.

      Doesn't the code above need to have Depth as a parameter? I'm not sure why it shows up in the table.

      I'm also curious what the "Value" column is - 1.1?

    14. Exploring use of Python to formulate requests to the ERDDAP tabledap service from IOOS Sensor Map data requests and process the various responses available.

      "Web Map Services, like the IOOS Sensor Map, are a great way to find data you may be looking for in a particular geographic area. In this notebook we will explore the use of Python to formulate requests to the NOAA ERDDAP tabledap service from IOOS Sensor Map data requests and process the various responses available."

  10. Jan 2017
    1. Note however that we are skip the discovery of the wms information and hard-coding them instead. That is to save time as parsing the URL http://pdx.axiomalaska.com/ncWMS/wms takes ~ 10 minutes. See this issue for more information.

      "Note, however, we are skipping the discovery step of the wms information and hard-coding the path instead. That is to save time because parsing the URL http://pdx.axiomalaska.com/ncWMS/wms takes ~ 10 minutes. See this issue for more information."

    2. Siphon has a ncss (NetCDF subset service) access, here is the docstring:

      "Siphon has a ncss (NetCDF subset service) access, here is a quote from the documentation:"

    3. One can also check the catalog refs.

      "It looks like model runs as well as satellite and HFR data. One can also check the catalog refs for more information."

    4. OWSLib helps to check inspect the available layers before plotting. Here we will get the first layer that has G1_SST_US_WEST_COAST on it.

      "OWSLib helps to inspect the available layers before plotting. Here we will get the first layer that has G1_SST_US_WEST_COAST on it."

    5. Unfortunately this dataset had no metadata. So let's check what kind of services are available?

      "Unfortunately this catalog has no metadata. So let's check what kind of services are available."

    6. The cell below extracts the catalog information for example.

      "In this notebook we will explore data available on the Central & Northern California Ocean Observing System (CeNCOOS) THREDDS. The cell below extracts the catalog information."

    1. We already created an OWSLib.fes filter before.

      "We already created an OWSLib.fes filter before in a previous demo notebook."

      link "demo notebook"

    2. and match them with the nearest observed time-series. The max_dist=0.08 is in degrees, that is roughly 8 kilometers.

      " Next, we will match them with the nearest observed time-series. The max_dist=0.08 is in degrees, that is roughly 8 kilometers."

    3. For more information regarding the workflow presented here see

      "This workflow is part of an example to advise swimmers of the annual Boston lighthouse swim of the Boston Harbor water temperature conditions prior to the race. For more information regarding ...."

    4. Here we use a dictionary with some model we expect to find to create a better legend for the plots. If any new model is found we will use its filename as legend instead.

      "Here we use a dictionary with some models we expect to find so we can create a better legend for the plots. If any new model is found, we will use its filename in the legend as a default until we can go back and add a short name to our library."

      Did I clarify this correctly?

    5. The green marker are locate at the observations locations and they pop-up a an interactive plot wit the time-series and the scores for the models (hover over the lines). The blue marker indicate the nearest model grid point found for the comparison.

      "The green markers locate the observations locations. They pop-up an interactive plot with the time-series and scores for the models (hover over the lines). The blue markers indicate the nearest model grid point found for the comparison."

    6. Here we use a dictionary with some model we expect to find to create a better legend for the plots. If any new model is found we will use its file name as legend instead.

      Delete this. You said this above.

  11. Dec 2016
    1. And now an interactive map displaying the tracks found.

      "Finally, we can create an interactive map displaying the tracks found in the bounding box"

    2. And the figure below shows the temperature slice (left), and glider track (right) with start and end points marked with green and red respectively.

      "The figure below shows the temperature slice (left), and glider track (right) with start and end points marked with green and red respectively."

      Can we flip these plots so the glider track and distance traveled go from left to right? e.g. the x -axis goes from 0-160 rather than 160-0. I think the plot looks better that way and most users would want to see the data that way.

    3. The functions above apply the actual_range metadata to the data, mask the invalid/bad values, prepare the parameters for plotting.

      "The functions above apply the actual_range metadata to the data, mask the invalid/bad values, and prepare the parameters for plotting."

    4. In order to plot, for example sea water temperate, one must clean the data first.

      "In order to plot, for example sea water temperature data, one must clean the data first for outliers and missing values."

    5. The metadata very informative and rich. A quick way to get to the data is to read dap endpoint with iris.

      "The metadata is very rich and informative. A quick way to get to the data is to read dap endpoint with iris."

    1. This notebook demonstrates a how to query a Catalog Service for the Web (CSW), and to parse its results into endpoints that the user can consume.

      "This notebook demonstrates a how to query a Catalog Service for the Web (CSW), like the IOOS Catalog, and to parse its results into endpoints that can be used to access the data."

    2. The search returned o lot of records that matched the search. What if the user is not interested in those model results nor global dataset? We can those be excluded from the search with a fes.Not filter.

      Does line 5 give a # ? We should put that number in our comments (xxxx)

      "The search returned a lot of records (xxxx)! What if the user is not interested in model results or global datasets? We can choose to exclude those from the search with a fes.Not filter."

    3. In addition to those there are three very interesting links: the QC document-11102004.pdf), the station photo, and the station home page. For a detailed description of what those geolink results mean check the lookup table.

      "In addition to those links, there are three very interesting links for more information: 1.) the QC document-11102004.pdf), 2.) the station photo, 3.) the station home page.

      For a detailed description of what those geolink results mean check the lookup table."

    4. Maybe, if the user is interested only in some specific service, it is better to filter by a string, like CO-OPS.

      "12 Records. That's better. But if the user is interested in only some specific service, it is better to filter by a string, like CO-OPs"

  12. Nov 2016
    1. CF convention do describe the angle variable for grids that needs rotation, but there is no action expected like in the formula_terms. pysgrid must be improved to abstract that action when needed via a simpler method.

      Is this correct?:

      "CF convention does describe the angle variable for grids that needs rotation, but there is no action expected. For example, in the formula_terms, pysgrid must be improved to abstract that action when needed via a simpler method."

    2. All the raw grid information is present, like edges, dimensions, padding, and grid center, and slicing.

      "All the raw grid information is present, like edges, dimensions, padding, grid center, and slicing."

    3. Like the z-coord in the x-direction and the automatic naming of the z to Sea surface height above the reference ellipsoid in the second plot, or the lack of proper coordinates in the first plot.

      "For example, the z-coord is in the x-direction and the automatic naming of the z to Sea surface height is above the reference ellipsoid in the second plot. Another example is the lack of proper coordinates in the first plot."

    4. Since there are no rule against unique names

      Choose which one is best: "Since there is no rule against ..."

      or

      "Since there are no rules against ..."

    1. Quick demo on how to obtain, and plot glider data with iris and cartopy. In this notebook we will explore data from the RU29 Challenger glider deployment. The data are served on THREDDS via OPeNDAP.

      In this notebook we demonstrate how to obtain and plot glider data using iris and cartopy. We will explore data from Rutgers University RU29 "Challenger" glider that was launched from Ubatuba, Brazil on June 23, 2015 to travel across the Atlantic Ocean. After 282 days at sea the Challenger was picked up off the coast of South Africa, on March 31, 2016. For more information on this ground breaking excusion see: https://marine.rutgers.edu/main/announcements/the-challenger-glider-mission-south-atlantic-mission-complete

      Data collected from this glider mission are available on the IOOS Glider DAC THREDDS via OPeNDAP.