code: public void addWeather(byte[] source) throws IOException {
          AceWeather weather = new AceWeather(source);
          String wstId = weather.getValue("wst_id");
          String climId = weather.getValue("clim_id");
          String wid   = weather.getId();
          if (this.weatherMap.containsKey(wid)) {
              LOG.error("Duplicate data found for wst_id: {}", wstId);
          } else {
              this.weatherMap.put(wid, weather);
          }
          if (climId == null) {
              this.widMap.put(wstId, wid);
          } else {
              this.widMap.put(wstId + climId, wid);
          }
          // Add default data link for the case survey data do not provide climate ID
          if (!widMap.containsKey(wstId) || (climId != null && climId.startsWith("0"))) {
              this.widMap.put(wstId, wid);
          }
      }
docs: Add a Weather Station to the dataset.
  <p>
  Add a new Weather Station from a {@code byte[]} consisting of the JSON
  for that weather station data.
  
  @param source JSON weather station data
  @throws IOException if there is an I/O error