diff --git a/update_amda/makeEPNTAPGranules.php b/update_amda/makeEPNTAPGranules.php
index 7a145ce..69385d3 100644
--- a/update_amda/makeEPNTAPGranules.php
+++ b/update_amda/makeEPNTAPGranules.php
@@ -2,6 +2,8 @@
 
 //error_reporting(E_ERROR);
 
+date_default_timezone_set("UTC");
+
 $localparams_tree = getenv('LocalData')."/LocalParams.xml";
 $output_file      = getenv('EPNTAPData')."/amda-granules.csv";
 $ddservice_wsdl   = getenv('DD_WSDL');
@@ -54,7 +56,7 @@ $mapping = array(
         'modification_date' => '@@modification_date@@',
         'release_date' => '@@release_date@@',
         'service_title' => 'AMDADB',
-        'access_url' => '@@amda_rest_api_entry_point@@getGranule.php?obs_id=@@dataset_id@@&start=@@granule_start_time_timestamp@@&stop=@@granule_stop_time_timestamp@@&format=CDF',
+        'access_url' => '@@amda_rest_api_entry_point@@getGranule.php?obs_id=@@dataset_id@@&start=@@granule_start_time_timestamp@@&stop=@@granule_stop_time_timestamp@@',
         'access_format' => 'application/x-cdf-istp',
         'target_region' => '@@target_region@@',
         'publisher' => 'CDPP',
@@ -94,14 +96,61 @@ function parseProcessingLevel($info) {
 	return '3';
 }
 
-function spaseToEpnTapMeasurementType($measurement_type) {
-	return $measurement_type;	
+function getEpnTapMeasurementType($measurement_type, $UCDs) {
+	$generic_ucd = '';
+	switch ($measurement_type) {
+		case 'ThermalPlasma':
+			$generic_ucd = 'phys.flux';
+			break;
+		case 'IonComposition':
+		case 'NeutralGas':
+			$generic_ucd = 'phys.composition';
+			break;
+		case 'EnergeticParticles':
+			$generic_ucd = 'phys.particle';
+			break;
+		case 'Waves':
+		case 'Waves.Passive':
+			$generic_ucd = 'em.pw';
+			break;
+		case 'Ephemeris':
+			$generic_ucd = 'pos.ephem';
+			break;
+		case 'ElectricField':
+			$generic_ucd = 'phys.electField';
+			break;
+		case 'MagneticField':
+			$generic_ucd = 'phys.magField';
+			break;
+		case 'Spectrum':
+			$generic_ucd = 'spect';
+			break;
+		case 'InstrumentStatus':
+			$generic_ucd = 'instr';
+			break;
+		case 'Irradiance':
+			$generic_ucd = 'phot.flux';
+			break;
+		case 'Radiance':
+			$generic_ucd = 'phot.radiance';
+			break;
+		default:
+			echo "[WARNING] UCD - Unknown measurement type: ".$measurement_type.PHP_EOL;
+			break;
+	}
+	if (!empty($generic_ucd) && !in_array($generic_ucd, $UCDs))
+		array_unshift($UCDs, $generic_ucd);
+	return implode(';', $UCDs);
 }
 
 function timestampToJulianDay($timestamp) {
 	return intval($timestamp) / 86400 + 2440587.5;
 }
 
+function timestampToISO($timestamp) {
+	return date("Y-m-d\TH:i:s\Z", $timestamp);
+}
+
 function getTargetClass($spaseRegion) {
 	$parts = explode(".", $spaseRegion);
 	if (count($parts) < 1) {
@@ -143,6 +192,7 @@ function getTargetName($targetClass, $spaseRegion, $missionName, $dataset_id) {
 	}
 	switch ($targetClass) {
 		case "planet":
+		case "satellite":
 			if ((count($parts) > 1) && !in_array($parts[1], array("Magnetosheath", "Magnetosphere", "NearSurface", "Surface"))) {
 				return $parts[1];
 			}
@@ -232,6 +282,8 @@ foreach ($dataset_nodes as $dataset_node) {
 	$dataset_place_holders = array();
 	//Dataset id
 	$datasetId = $dataset_node->getAttribute("xml:id");
+	//if ($datasetId != 'psp-het-1hr')
+	//	continue;
 	if (empty($datasetId)) {
 		echo "[WARNING] Cannot retrieve dataset id".PHP_EOL;
 		continue;
@@ -255,11 +307,27 @@ foreach ($dataset_nodes as $dataset_node) {
 		continue;
 	}
 
+	$UCDs = array();
+	$parameter_nodes = $dataset_node->getElementsByTagName("parameter");
+	foreach ($parameter_nodes as $parameter_node) {
+		$ucd = trim($parameter_node->getAttribute('ucd'));
+		if (empty($ucd))
+			continue;
+		$ucd_list = explode(';', $ucd);
+		foreach ($ucd_list as $u) {
+			$u = trim($u);
+			if (empty($u))
+				continue;
+			if (!in_array($u, $UCDs))
+				$UCDs[] = $u;
+		}
+	}
+
 	$dataset_place_holders['min_sampling'] = parseSampling($dataset_node->getAttribute("sampling"));
 	$dataset_place_holders['max_sampling'] = parseSampling($dataset_node->getAttribute("maxSampling"));
 	$dataset_place_holders['spase_resource_id'] = $dataset_node->getAttribute("spaseId");
 	$dataset_place_holders['spase_measurement_type'] = $dataset_node->getAttribute("measurement_type");
-	$dataset_place_holders['measurement_type'] = spaseToEpnTapMeasurementType($dataset_place_holders['spase_measurement_type']);
+	$dataset_place_holders['measurement_type'] = getEpnTapMeasurementType($dataset_place_holders['spase_measurement_type'], $UCDs);
 	$dataset_place_holders['processing_level'] = parseProcessingLevel($dataset_node->getAttribute("xml:id"));
 	$target = $dataset_node->getAttribute("target");
 	
@@ -315,8 +383,11 @@ foreach ($dataset_nodes as $dataset_node) {
 	if (!empty($observatory_node)) {
 		$mission_name = $observatory_node->getAttribute('name');
 	}
-	$dataset_place_holders['mission_name'] = $mission_name;
-	$dataset_place_holders['instrument_name'] = $instrument_name;
+	$dataset_place_holders['mission_name'] = utf8_encode($mission_name);
+	$dataset_place_holders['instrument_name'] = preg_replace('/[^:\/\(\) \w-]/', ' ', $instrument_name);
+	if ($dataset_place_holders['instrument_name'] != $instrument_name) {
+		echo "=================> ".$dataset_place_holders['instrument_name'].PHP_EOL;
+	}
 	if (!empty($dataset_group_node)) {
 		if ($dataset_place_holders['processing_level'] == 'L2') {
 			$dataset_place_holders['processing_level'] = parseProcessingLevel($dataset_group_node->getAttribute("xml:id"));
@@ -324,7 +395,13 @@ foreach ($dataset_nodes as $dataset_node) {
 	}
 
 	try {
-		$vi = str_replace("-","_",$datasetId);
+		$prior_id = trim($dataset_node->getAttribute('PriorID'));
+		if (!empty($prior_id)) {
+			$vi = str_replace("-","_",$prior_id);
+		}
+		else {
+			$vi = str_replace("-","_",$datasetId);
+		}
 		$res = $client->getGranules($vi);
 	}
 	catch  (SoapFault $exception) {
@@ -347,7 +424,7 @@ foreach ($dataset_nodes as $dataset_node) {
 		$granule_place_holders['granule_index'] = str_replace(".nc", "", $granule_info[2]);
 		$granule_place_holders['granule_start_time'] = timestampToJulianDay($granule_info[0]);
 		$granule_place_holders['granule_stop_time']  = timestampToJulianDay($granule_info[1]);
-		$granule_place_holders['modification_date']  = timestampToJulianDay($granule_info[3]);
+		$granule_place_holders['modification_date']  = timestampToISO($granule_info[3]);
 		$granule_place_holders['granule_start_time_timestamp'] = $granule_info[0];
 		$granule_place_holders['granule_stop_time_timestamp']  = $granule_info[1];
 		$granule_place_holders['creation_date']      = $granule_place_holders['modification_date'];
--
libgit2 0.21.2