def create(executionId, results, params, details):

        t = tempfile.mkstemp(prefix="doms_", suffix=".nc")
        tempFileName = t[1]

        dataset = Dataset(tempFileName, "w", format="NETCDF4")
        dataset.DOMS_matchID = executionId
        DomsNetCDFFormatter.__addNetCDFConstants(dataset)

        dataset.date_modified = datetime.utcnow().replace(
            tzinfo=UTC).strftime(ISO_8601)
        dataset.date_created = datetime.utcnow().replace(
            tzinfo=UTC).strftime(ISO_8601)
        dataset.time_coverage_start = params["startTime"].strftime(ISO_8601)
        dataset.time_coverage_end = params["endTime"].strftime(ISO_8601)
        dataset.time_coverage_resolution = "point"
        dataset.DOMS_match_up = params["matchup"]
        dataset.DOMS_num_matchup_matched = details["numInSituMatched"]
        dataset.DOMS_num_primary_matched = details["numGriddedMatched"]

        bbox = geo.BoundingBox(asString=params["bbox"])
        dataset.geospatial_lat_max = bbox.north
        dataset.geospatial_lat_min = bbox.south
        dataset.geospatial_lon_max = bbox.east
        dataset.geospatial_lon_min = bbox.west
        dataset.geospatial_lat_resolution = "point"
        dataset.geospatial_lon_resolution = "point"
        dataset.geospatial_lat_units = "degrees_north"
        dataset.geospatial_lon_units = "degrees_east"
        dataset.geospatial_vertical_min = float(params["depthMin"])
        dataset.geospatial_vertical_max = float(params["depthMax"])
        dataset.geospatial_vertical_units = "m"
        dataset.geospatial_vertical_resolution = "point"
        dataset.geospatial_vertical_positive = "down"

        dataset.DOMS_TimeWindow = params["timeTolerance"] / 60 / 60
        dataset.DOMS_TimeWindow_Units = "hours"
        dataset.DOMS_SearchRadius = float(params["radiusTolerance"])
        dataset.DOMS_SearchRadius_Units = "m"
        # dataset.URI_Subset = "http://webservice subsetting query request"
        dataset.URI_Matchup = "http://{webservice}/domsresults?id=" + executionId + "&output=NETCDF"
        dataset.DOMS_ParameterPrimary = params[
            "parameter"] if "parameter" in params else ""
        dataset.DOMS_platforms = params["platforms"]
        dataset.DOMS_primary = params["primary"]
        dataset.DOMS_time_to_complete = details["timeToComplete"]
        dataset.DOMS_time_to_complete_units = "seconds"

        insituDatasets = params["matchup"]
        insituLinks = set()
        for insitu in insituDatasets:
            insituLinks.add(config.METADATA_LINKS[insitu])
        dataset.DOMS_DatasetMetadata = ', '.join(insituLinks)

        platforms = set()
        for primaryValue in results:
            platforms.add(primaryValue['platform'])
            for match in primaryValue['matches']:
                platforms.add(match['platform'])
        dataset.platform = ', '.join(platforms)

        satellite_group_name = "SatelliteData"
        insitu_group_name = "InsituData"

        #Create Satellite group, variables, and attributes
        satelliteGroup = dataset.createGroup(satellite_group_name)
        satelliteWriter = DomsNetCDFValueWriter(satelliteGroup,
                                                params["parameter"])

        # Create InSitu group, variables, and attributes
        insituGroup = dataset.createGroup(insitu_group_name)
        insituWriter = DomsNetCDFValueWriter(insituGroup, params["parameter"])

        # Add data to Insitu and Satellite groups, generate array of match ID pairs
        matches = DomsNetCDFFormatter.__writeResults(results, satelliteWriter,
                                                     insituWriter)
        dataset.createDimension("MatchedRecords", size=None)
        dataset.createDimension("MatchedGroups", size=2)
        matchArray = dataset.createVariable(
            "matchIDs", "f4", ("MatchedRecords", "MatchedGroups"))
        matchArray[:] = matches

        dataset.close()
        f = open(tempFileName, "rb")
        data = f.read()
        f.close()
        os.unlink(tempFileName)
        return data