• Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
    Dedicated community for Japanese speakers
  • 한국 커뮤니티
    Dedicated community for Korean speakers
Exit
0

I've got an AS3 code that calculates the thides (highs and lows). Want to calculate the actual tide.

Contributor ,
Jan 16, 2018 Jan 16, 2018

Copy link to clipboard

Copied

I've got an app that calculate and displays tides (high and low tides).

All the math for the calculs are already done.

I would like to add one line to my code that would calculate the actual tide (not the 2 highest of the day or the 2 lowest but the meters of the water now).

I'm quite bad at math so any help would be good. I'm willing to pay 50$ for this job if needed.

The code :

/////// CALCULATE TIDES ///////////////////

var $cfm:Number;

var $cfs:Number;

var $pmm:String;

var $pms:String;

var $bmm:String;

var $bms:String;

var $hpmm:Number;

var $hpms:Number;

var $hbmm:Number;

var $hbms:Number;

var $latitude:String;

var $longitude:String;

var $temps:String;

var $port_maree:String;

var $jour_maree:Number;

var $mois_maree:Number;

var $annee_maree:Number;

var $nom_port:String;

var $z0:Number;

var $asa:Number;

var $aq1:Number;

var $ao1:Number;

var $ak1:Number;

var $an2:Number;

var $am2:Number;

var $as2:Number;

var $amn4:Number;

var $am4:Number;

var $ams4:Number;

var $gsa:Number;

var $gq1:Number;

var $go1:Number;

var $gk1:Number;

var $gn2:Number;

var $gm2:Number;

var $gs2:Number;

var $gmn4:Number;

var $gm4:Number;

var $gms4:Number;

var $la:String;

var $lo:String;

var $utc:String;

var $coef_z0:Number;

var $pref_z0:Number;

var $a:Object;

var $g:Object;

var $coef_a:Object;

var $coef_g:Object;

var $pref_a:Object;

var $pref_g:Object;

// calcul_maree properties

var $r0:Object;

var $phi0:Object;

var $r24:Object;

var $phi24:Object;

// tide data loader properties

var _onDataCompleteFunc:Function;

var _isDebug:Boolean = true;

// public properties

function get haute1():String { return $pmm; };

function get haute2():String { return $pms; }

function get basse1():String { return $bmm; };

function get basse2():String { return $bms; };

function get metrehaute1():Number { return $hpmm; };

function get metrehaute2():Number { return $hpms; };

function get metrebasse1():Number { return $hbmm; };

function get metrebasse2():Number { return $hbms; };

// convenient way to retrieve public data

function get results():Object

{

if (!$pmm) return {};

return {

haute1:$pmm,

haute2:$pms,

basse1:$bmm,

basse2:$bms,

metrehaute1:$hpmm,

metrehaute2:$hpms,

metrebasse1:$hbmm,

metrebasse2:$hbms

};

}

/////////////////////////////////////////////////////////////////////////////////////////////////////

// TideDataTools.as

/////////////////////////////////////////////////////////////////////////////////////////////////////

function trim(pValue:String):String

{

var whitespace:RegExp = /(\t|\n|\s{2,})/g;

var trimmedValue:String = pValue.replace(whitespace, "");

return trimmedValue;

}

function maree($inputport:String = "", $inputdate:String = "", onDataCompleteFunc:Function = null):void

{

if (onDataCompleteFunc != null) _onDataCompleteFunc = onDataCompleteFunc;

$port_maree = trim($inputport).toUpperCase();

/*if ($inputdate != '') $infodate = getdate(date2timestamp($inputdate + " 00:00:00","d/m/Y h:i:s"));

else $infodate = getdate(date2timestamp(date("dmY") + " 00:00:00","d/m/Y h:i:s"));

$jour_maree = $infodate["mday"];

$mois_maree = $infodate["mon"];

$annee_maree = $infodate["year"];*/

var $infodate:Array = $inputdate.split("/");

$jour_maree = Number($infodate[0]); // 25; // Day

$mois_maree = Number($infodate[1]); // 12; // Month

$annee_maree = Number($infodate[2]); // 2015; // Year

loadXmlData();

}

// Load TideData XML

function loadXmlData():void

{

// _tideData = new TideDataLoader();

// _tideData.loadLocalData(onTideLoaderCallBack);

loadLocalData(onTideLoaderCallBack);

}

function onTideLoaderCallBack(data:Object):void

{

if (data["status"] == COMPLETE)

{

parseXmlData();

init_port();

calcul_maree();

}

else if (data["status"] == IO_ERROR)

{

}

if (_onDataCompleteFunc != null) _onDataCompleteFunc(data);

}

function parseXmlData():void

{

if (!_tideXmlData) return;

// scan and parse xml data

for each ( var dataItem:Object in _tideXmlData.row )

{

if (dataItem.NOM == $port_maree)

{

$z0 = dataItem.ZO;

$asa = dataItem.ASA;

$aq1 = dataItem.AQ1;

$ao1 =dataItem.AO1;

$ak1 = dataItem.AK1;

$an2 = dataItem.AN2;

$am2 = dataItem.AM2;

$as2 = dataItem.AS2;

$amn4 = dataItem.AMN4;

$am4 = dataItem.AM4;

$ams4 = dataItem.AMS4;

$gsa = dataItem.GSA;

$gq1 = dataItem.GQ1;

$go1 = dataItem.GO1;

$gk1 = dataItem.GK1;

$gn2 = dataItem.GN2;

$gm2 = dataItem.GM2;

$gs2 = dataItem.GS2;

$gmn4 = dataItem.GMN4;

$gm4 = dataItem.GM4;

$gms4 = dataItem.GMS4;

$la = dataItem.LA;

$lo = dataItem.LO;

$utc = dataItem.UTC;

break;

}

}

// Assignment longitude, latitude and time GMT

$latitude = $la;

$longitude = $lo;

$temps = $utc;

}

// Port initialization

function init_port($iscoef:Number = -1):void

{

var $i:int, $j:int;

$a = { };

$g = { };

// initialization tables

for ($j = 1; $j <= 5; $j++)

{

$a[$j] = {};

$g[$j] = {};

for ($i = 1; $i <= 11; $i++)

{

$a[$j][$i] = 0;

$g[$j][$i] = 0;

}

}

$coef_a = { };

$coef_g = { };

$pref_a = { };

$pref_g = { };

if ($iscoef >= 0)

{

$a[1][1] = 0;

$a[2][1] = 0;

$a[2][2] = 0;

$a[2][3] = 0;

$a[2][4] = 0;

$a[2][5] = 0;

$a[2][6] = 0;

$a[3][1] = 668;

$a[3][2] = 136;

$a[3][3] = 245;

$a[3][4] = (1 / 7.6) * 136;

$a[3][5] = (1 / 6.3) * 136;

$a[3][6] = (1 / 5.3) * 136;

$a[3][7] = ( -1 / 35) * 668;

$a[3][8] = (1 / 3.7) * 245;

$a[3][9] = (1 / 17) * 245;

$a[3][10] = ( -1 / 27) * 668;

$a[3][11] = (1 / 12) * 245;

$a[5][1] = 0;

$a[5][2] = 0;

$a[5][3] = 0;

$g[1][1] = 0;

$g[2][1] = 0;

$g[2][2] = 0;

$g[2][3] = 0;

$g[2][4] = 0;

$g[2][5] = 0;

$g[2][6] = 0;

$g[3][1] = 138;

$g[3][2] = 119;

$g[3][3] = 178;

$g[3][4] = 119;

$g[3][5] = 119;

$g[3][6] = 119;

$g[3][7] = 138;

$g[3][8] = 178;

$g[3][9] = -105;

$g[3][10] = 138;

$g[3][11] = 178;

$g[5][1] = 0;

$g[5][2] = 0;

$g[5][3] = 0;

$coef_z0 = 0;

for ($j = 1; $j <= 5; $j++)

{

$coef_a[$j] = { };

$coef_g[$j] = { };

for ($i = 1; $i <= 11; $i++)

{

$coef_a[$j][$i] = $a[$j][$i];

$coef_g[$j][$i] = $g[$j][$i];

}

}

}

else

{

$a[1][1] = $asa;

$a[2][1] = $ak1;

$a[2][2] = $ao1;

$a[2][3] = $aq1;

$a[2][4] = (-1/3) * $ak1;

$a[2][5] = (1/5.3) * $ao1;

$a[2][6] = (1/7.4) * $ak1;

$a[3][1] = $am2;

$a[3][2] = $an2;

$a[3][3] = $as2;

$a[3][4] = (1/7.6) * $an2;

$a[3][5] = (1/6.3) * $an2;

$a[3][6] = (1/5.3) * $an2;

$a[3][7] = (-1/35) * $am2;

$a[3][8] = (1/3.7) * $as2;

$a[3][9] = (1/17) * $as2;

$a[3][10] = (-1/27) * $am2;

$a[3][11] = (1/12) * $as2;

$a[5][1] = $amn4;

$a[5][2] = $am4;

$a[5][3] = $ams4;

$g[1][1] = $gsa;

$g[2][1] = $gk1;

$g[2][2] = $go1;

$g[2][3] = $gq1;

$g[2][4] = $gk1;

$g[2][5] = $go1;

$g[2][6] = $gk1;

$g[3][1] = $gm2;

$g[3][2] = $gn2;

$g[3][3] = $gs2;

$g[3][4] = $gn2;

$g[3][5] = $gn2;

$g[3][6] = $gn2;

$g[3][7] = $gm2;

$g[3][8] = $gs2;

$g[3][9] = $gs2 - 283;

$g[3][10] = $gm2;

$g[3][11] = $gs2;

$g[5][1] = $gmn4;

$g[5][2] = $gm4;

$g[5][3] = $gms4;

$pref_z0 = $z0;

for ($j = 1; $j <= 5; $j++)

{

$pref_a[$j] = { };

$pref_g[$j] = { };

for ($i = 1; $i <= 11; $i++)

{

$pref_a[$j][$i] = $a[$j][$i];

$pref_g[$j][$i] = $g[$j][$i];

}

}

}

}

// calculation feature heights

function calc_hauteur($valeur:Number):Number

{

var $h:Number = $z0 * 10;

var $j:int;

for ($j = 1; $j <= 5; $j++)

{

var $rj:Number = $r0[$j] + $valeur / 24 * ($r24[$j] - $r0[$j]);

var $deltaj:Number = $phi24[$j] - $phi0[$j];

if ($deltaj < -180) $deltaj = $deltaj + 360;

if ($deltaj > 180) $deltaj = $deltaj - 360;

var $phij:Number = $phi0[$j] + $valeur / 24 * (($j - 1) * 360 + $deltaj);

$h = $h + $rj * Math.cos($phij * Math.PI / 180);

}

return $h;

}

// calculating functions Tide

function calcul_maree($iscoef:Number = -1):void

{

var $sigma:Number = 0;

var $sigma2:Number = 0;

var $dt:Number = 0;

var $pb:Number = 0;

var $pif:Number = 0;

var $deltapm:Number = 0;

// initialization method Tide

init_maree($iscoef);

var $j:int = 3;

if ($phi0[$j] < 0) $deltapm = 0; else $deltapm = 1;

var $t:Number = 0;

var $deltaj:Number = 0;

var $rj:Number = 0;

var $phij:Number = 0;

var $tpbs:Object = { };

for ($j = 1; $j <= 5; $j++)

{

$rj = $r0[$j] + $t / 24 * ($r24[$j] - $r0[$j]);

$deltaj = $phi24[$j] - $phi0[$j];

if ($deltaj < -180) $deltaj = $deltaj + 360;

if ($deltaj > 180) $deltaj = $deltaj - 360;

$phij = $phi0[$j] + $t / 24 * (($j - 1) * 360 + $deltaj);

$sigma = $sigma + Math.PI / 180 * $rj * (15 * ($j - 1) + $deltaj / 24) * Math.sin($phij * Math.PI / 180) - ($r24[$j] - $r0[$j]) / 24 * Math.cos($phij * Math.PI / 180);

}

for ($pb = 1; $pb <= 4; $pb++)

{

$dt = 0.4;

for ($pif = 1; $pif <= 2; $pif++)

{

do

{

$t = $t + $dt;

$sigma2 = $sigma;

$sigma = 0;

for ($j = 1; $j <= 5; $j++)

{

$rj = $r0[$j] + $t / 24 * ($r24[$j] - $r0[$j]);

$deltaj = $phi24[$j] - $phi0[$j];

if ($deltaj < -180) $deltaj = $deltaj + 360;

if ($deltaj > 180) $deltaj = $deltaj - 360;

$phij = $phi0[$j] + $t / 24 * (($j - 1) * 360 + $deltaj);

$sigma = $sigma + Math.PI / 180 * $rj * (15 * ($j - 1) + $deltaj / 24) * Math.sin($phij * Math.PI / 180) - ($r24[$j] - $r0[$j]) / 24 * Math.cos($phij * Math.PI / 180);

}

} while (sng($sigma) == sng($sigma2));

$t = $t - $dt;

if ($pif == 1)

{

$sigma = $sigma2;

$dt = 0.01;

}

}

$tpbs[$pb] = $t;

}

if ($iscoef >= 0)

{

// Affects tidal coefficients

$cfm = Math.round(calc_hauteur($tpbs[1 + $deltapm]) / 10);

$cfs = Math.round(calc_hauteur($tpbs[3 + $deltapm]) / 10);

}

else

{

// Assigns hours and tidal heights

$pmm = convdateheure($tpbs[1 + $deltapm]);

$pms = convdateheure($tpbs[3 + $deltapm]);

$bmm = convdateheure($tpbs[2 - $deltapm]);

$bms = convdateheure($tpbs[4 - $deltapm]);

$hpmm = convhauteur(calc_hauteur($tpbs[1 + $deltapm]));

$hpms = convhauteur(calc_hauteur($tpbs[3 + $deltapm]));

$hbmm = convhauteur(calc_hauteur($tpbs[2 - $deltapm]));

$hbms = convhauteur(calc_hauteur($tpbs[4 - $deltapm]));

}

}

// fonction d'initialisation de la marée

function init_maree($iscoef:Number = -1):void

{

var $n1:Array = [[0,0,0,0,0,0,0,0,0,0,0], [0,-2,-3,0,-2,0,0,0,0,0,0], [-2,-3,0,-4,-4,-3,-1,0,0,-2,0], [0,0,0,0,0,0,0,0,0,0,0], [-5,-4,-2,0,0,0,0,0,0,0,0]];

var $n2:Array = [[1,0,0,0,0,0,0,0,0,0,0], [1,1,1,-1,1,1,0,0,0,0,0], [2,2,0,2,4,4,2,2,-1,2,2], [0,0,0,0,0,0,0,0,0,0,0], [4,4,2,0,0,0,0,0,0,0,0]];

var $n3:Array = [[0,0,0,0,0,0,0,0,0,0,0], [0,0,1,0,0,0,0,0,0,0,0], [0,1,0,2,0,-1,-1,0,0,0,0], [0,0,0,0,0,0,0,0,0,0,0], [1,0,0,0,0,0,0,0,0,0,0]];

var $n4:Array = [[0,0,0,0,0,0,0,0,0,0,0], [0,0,0,0,-1,1,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,-1,1], [0,0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0,0]];

var $n5:Array = [[0,0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0,0]];

var $n6:Array = [[0,0,0,0,0,0,0,0,0,0,0], [1,-1,-1,1,-1,1,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0,0]];

var $i:int, $j:int, $test:Number;

if ($iscoef >= 0)

{

$z0 = $coef_z0;

for ($j = 1; $j <= 5; $j++)

{

for ($i = 1; $i <= 11; $i++)

{

$a[$j][$i] = $coef_a[$j][$i];

$g[$j][$i] = $coef_g[$j][$i];

}

}

}

else

{

$z0 = $pref_z0;

for ($j = 1; $j <= 5; $j++)

{

for ($i = 1; $i <= 11; $i++)

{

$a[$j][$i] = $pref_a[$j][$i];

$g[$j][$i] = $pref_g[$j][$i];

}

}

}

var $t:Number = 0;

var $t2:Number = Math.floor(30.6001 * (1 + $mois_maree + 12 * Math.floor(1 / ($mois_maree + 1) + 0.7))) + Math.floor(365.25 * ($annee_maree - Math.floor(1 / ($mois_maree + 1) + 0.7))) + $jour_maree + $t / 24 - 723258;

var $h:Number = 279.82 + 0.98564734 * $t2;

var $s:Number = 78.16 + 13.17639673 * $t2;

var $p:Number = 349.5 + 0.11140408 * $t2;

var $n:Number = 208.1 + 0.05295392 * $t2;

var $p1:Number = 282.6 + 0.000047069 * $t2;

var $d:Number = 90;

$r0 = { };

$phi0 = { };

for ($j = 1; $j <= 5; $j++)

{

var $xj:Number = 0;

var $yj:Number = 0;

for ($i = 1; $i <= 11; $i++)

{

var $vij:Number = 15 * ($j - 1) * $t + $n1[$j-1][$i-1] * $s + $n2[$j-1][$i-1] * $h + $n3[$j-1][$i-1] *$p + $n4[$j-1][$i-1] * $n + $n5[$j-1][$i-1] * $p1 + $n6[$j-1][$i-1] * $d;

$xj = $xj + $a[$j][$i] * Math.cos(Math.PI / 180 * ($vij - $g[$j][$i]));

$yj = $yj + $a[$j][$i] * Math.sin(Math.PI / 180 * ($vij - $g[$j][$i]));

}

$r0[$j] = Math.sqrt(($xj * $xj) + ($yj * $yj));

if ($r0[$j] == 0) $phi0[$j] = 90;

else

{

$test = 180 / Math.PI * (Math.asin($yj / $r0[$j]));

if ($test < 0) $phi0[$j] = 180 / Math.PI * (Math.acos($xj / $r0[$j])) * -1;

else $phi0[$j] = 180 / Math.PI * (Math.acos($xj / $r0[$j]));

}

}

$t = 24;

$t2 = Math.floor(30.6001 * (1 + $mois_maree + 12 * Math.floor(1 / ($mois_maree + 1) + 0.7))) + Math.floor(365.25 * ($annee_maree - Math.floor(1 / ($mois_maree + 1) + 0.7))) + $jour_maree + $t / 24 - 723258;

$h = 279.82 + 0.98564734 * $t2;

$s = 78.16 + 13.17639673 * $t2;

$p = 349.5 + 0.11140408 * $t2;

$n = 208.1 + 0.05295392 * $t2;

$p1 = 282.6 + 0.000047069 * $t2;

$d = 90;

$r24 = { };

$phi24 = { };

for ($j = 1; $j <= 5; $j++)

{

$xj = 0;

$yj = 0;

for ($i = 1; $i <= 11; $i++)

{

$vij = 15 * ($j - 1) * $t + $n1[$j-1][$i-1] * $s + $n2[$j-1][$i-1] * $h + $n3[$j-1][$i-1] *$p + $n4[$j-1][$i-1] * $n + $n5[$j-1][$i-1] * $p1 + $n6[$j-1][$i-1] * $d;

$xj = $xj + $a[$j][$i] * Math.cos(Math.PI / 180 * ($vij - $g[$j][$i]));

$yj = $yj + $a[$j][$i] * Math.sin(Math.PI / 180 * ($vij - $g[$j][$i]));

}

$r24[$j] = Math.sqrt(($xj * $xj) + ($yj * $yj));

if ($r24[$j] == 0) $phi24[$j] = 90;

else

{

$test = 180 / Math.PI * (Math.asin($yj / $r24[$j]));

if ($test < 0) $phi24[$j] = 180 / Math.PI * (Math.acos($xj / $r24[$j])) * -1;

else $phi24[$j] = 180 / Math.PI * (Math.acos($xj / $r24[$j]));

}

}

}

/////////////////////////////////////////////////////////////////////////////////////////////////////

// Helper Functions

/////////////////////////////////////////////////////////////////////////////////////////////////////

function sng($valeur:Number):Number

{

if ($valeur < 0) return -1; else return 1;

}

function convdateheure($valeur:Number):String

{

var $heure:Number = Math.floor($valeur);

var $minute:Number = Math.floor(Math.floor(($valeur - Math.floor($valeur)) * 100) * 0.6);

var hoursLabel:String = "", minsLabel:String = "";

if ($heure == 24) $heure = 0; // Check if at the 24 hour mark, change to 0

if ($heure < 10) hoursLabel += "0" + $heure.toString(); else hoursLabel = $heure.toString();

if ($minute < 10) minsLabel += "0" + $minute.toString(); else minsLabel = $minute.toString();

return hoursLabel + ":" + minsLabel;

}

function convhauteur($valeur:Number):Number

{

var $temp:Number = Math.floor($valeur / 10) / 100;

return Number($temp.toFixed(2));

}

////////////////////////////////////// ////////////////////////////////////// ////////////////////////////////////// //////////////////////////////////////

/////////////////////////////////////////////////////////////////////////////////////////////////////

// TideDataLoader.as

/////////////////////////////////////////////////////////////////////////////////////////////////////

const COMPLETE:String = Event.COMPLETE;

const IO_ERROR:String = IOErrorEvent.IO_ERROR;

var _localPath:String = "data/";

var _localTideDataFile:String = "tide_data.xml";

var _tideXmlData:XML;

function get tideXmlData():XML { return _tideXmlData; }

var _callBackFunc:Function;

var _configLoader:URLLoader;

var _isDebugger:Boolean = true;

/////////////////////////////////////////////////////////////////////////////////////////////////////

// Load Local Tide Data

/////////////////////////////////////////////////////////////////////////////////////////////////////

function loadLocalData(callBackFunc:Function):void

{

_callBackFunc = callBackFunc;

_configLoader = new URLLoader();

addDataEvents();

//var localDataFile:File = File.applicationDirectory;

//localDataFile = localDataFile.resolvePath(_localPath + _localTideDataFile);

// _configLoader.load( new URLRequest( localDataFile.url ));

_configLoader.load( new URLRequest( _localTideDataFile ));

}

function addDataEvents():void

{

_configLoader.addEventListener( flash.events.Event.COMPLETE, onLoadDataCompleted, false, 0 );

_configLoader.addEventListener( IOErrorEvent.IO_ERROR, onLoadDataIOError, false, 0 );

}

function removeDataEvents():void

{

_configLoader.removeEventListener( flash.events.Event.COMPLETE, onLoadDataCompleted );

_configLoader.removeEventListener( IOErrorEvent.IO_ERROR, onLoadDataIOError );

}

function onLoadDataCompleted( event:flash.events.Event ):void

{

removeDataEvents();

_tideXmlData = new XML(event.target.data);

_callBackFunc({status:COMPLETE});

}

function onLoadDataIOError(e:IOErrorEvent):void

{

removeDataEvents();

_callBackFunc({status:IO_ERROR});

}

TOPICS
ActionScript

Views

417

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Jan 16, 2018 Jan 16, 2018

Copy link to clipboard

Copied

there's probably nothing to calculate.  you just need to inspect tide_data.xml

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Contributor ,
Jan 16, 2018 Jan 16, 2018

Copy link to clipboard

Copied

Not sure... I think it's for coordinates of ports :

Here's the tide_data.xml :

<?xml version="1.0" encoding="utf-8" ?>

<data>

<row>

<NOM><![CDATA[NOUMEA]]></NOM>

<ZO>95</ZO>

<ASA>49</ASA>

<AQ1>12</AQ1>

<AO1>66</AO1>

<AK1>139</AK1>

<AN2>64</AN2>

<AM2>409</AM2>

<AS2>142</AS2>

<AMN4>0</AMN4>

<AM4>0</AM4>

<AMS4>0</AMS4>

<GSA>307</GSA>

<GQ1>112</GQ1>

<GO1>150</GO1>

<GK1>193</GK1>

<GN2>211</GN2>

<GM2>229</GM2>

<GS2>277</GS2>

<GMN4>0</GMN4>

<GM4>0</GM4>

<GMS4>0</GMS4>

<LA><![CDATA[22 18 S]]></LA>

<LO><![CDATA[166 26 E]]></LO>

<UTC><![CDATA[ UT 11.0]]></UTC>

</row>

<row>

<NOM><![CDATA[NUVEA]]></NOM>

<ZO>96</ZO>

<ASA>62</ASA>

<AQ1>14</AQ1>

<AO1>66</AO1>

<AK1>138</AK1>

<AN2>63</AN2>

<AM2>412</AM2>

<AS2>144</AS2>

<AMN4>0</AMN4>

<AM4>0</AM4>

<AMS4>0</AMS4>

<GSA>298</GSA>

<GQ1>109</GQ1>

<GO1>150</GO1>

<GK1>132</GK1>

<GN2>213</GN2>

<GM2>227</GM2>

<GS2>277</GS2>

<GMN4>0</GMN4>

<GM4>0</GM4>

<GMS4>0</GMS4>

<LA><![CDATA[22 18 S]]></LA>

<LO><![CDATA[166 26 E]]></LO>

<UTC><![CDATA[ UT 11.0]]></UTC>

</row>

<row>

<NOM><![CDATA[BOURAIL]]></NOM>

<ZO>84</ZO>

<ASA>0</ASA>

<AQ1>9</AQ1>

<AO1>69</AO1>

<AK1>140</AK1>

<AN2>70</AN2>

<AM2>385</AM2>

<AS2>133</AS2>

<AMN4>0</AMN4>

<AM4>0</AM4>

<AMS4>0</AMS4>

<GSA>0</GSA>

<GQ1>91</GQ1>

<GO1>156</GO1>

<GK1>196</GK1>

<GN2>227</GN2>

<GM2>232</GM2>

<GS2>265</GS2>

<GMN4>0</GMN4>

<GM4>0</GM4>

<GMS4>0</GMS4>

<LA><![CDATA[21 38 S]]></LA>

<LO><![CDATA[165 27 E]]></LO>

<UTC><![CDATA[ UT+11.0]]></UTC>

</row>

<row>

<NOM><![CDATA[HIENGHENE]]></NOM>

<ZO>96</ZO>

<ASA>0</ASA>

<AQ1>14</AQ1>

<AO1>84</AO1>

<AK1>168</AK1>

<AN2>84</AN2>

<AM2>344</AM2>

<AS2>92</AS2>

<AMN4>0</AMN4>

<AM4>0</AM4>

<AMS4>0</AMS4>

<GSA>0</GSA>

<GQ1>135</GQ1>

<GO1>166</GO1>

<GK1>198</GK1>

<GN2>149</GN2>

<GM2>176</GM2>

<GS2>185</GS2>

<GMN4>0</GMN4>

<GM4>0</GM4>

<GMS4>0</GMS4>

<LA><![CDATA[20 41 S]]></LA>

<LO><![CDATA[164 56 E]]></LO>

<UTC><![CDATA[ UT+11.0]]></UTC>

</row>

<row>

<NOM><![CDATA[PRONY]]></NOM>

<ZO>78</ZO>

<ASA>0</ASA>

<AQ1>13</AQ1>

<AO1>65</AO1>

<AK1>136</AK1>

<AN2>43</AN2>

<AM2>309</AM2>

<AS2>87</AS2>

<AMN4>0</AMN4>

<AM4>0</AM4>

<AMS4>0</AMS4>

<GSA>0</GSA>

<GQ1>116</GQ1>

<GO1>147</GO1>

<GK1>190</GK1>

<GN2>166</GN2>

<GM2>211</GM2>

<GS2>287</GS2>

<GMN4>0</GMN4>

<GM4>0</GM4>

<GMS4>0</GMS4>

<LA><![CDATA[22 19 S]]></LA>

<LO><![CDATA[166 49 E]]></LO>

<UTC><![CDATA[ UT+11.0]]></UTC>

</row>

<row>

<NOM><![CDATA[POINGAM]]></NOM>

<ZO>90</ZO>

<ASA>0</ASA>

<AQ1>17</AQ1>

<AO1>92</AO1>

<AK1>189</AK1>

<AN2>67</AN2>

<AM2>349</AM2>

<AS2>107</AS2>

<AMN4>0</AMN4>

<AM4>13</AM4>

<AMS4>13</AMS4>

<GSA>0</GSA>

<GQ1>143</GQ1>

<GO1>170</GO1>

<GK1>205</GK1>

<GN2>177</GN2>

<GM2>200</GM2>

<GS2>221</GS2>

<GMN4>0</GMN4>

<GM4>268</GM4>

<GMS4>299</GMS4>

<LA><![CDATA[20  4 S]]></LA>

<LO><![CDATA[164  1 E]]></LO>

<UTC><![CDATA[ UT+11.0]]></UTC>

</row>

<row>

<NOM><![CDATA[KUTO]]></NOM>

<ZO>81</ZO>

<ASA>32</ASA>

<AQ1>14</AQ1>

<AO1>64</AO1>

<AK1>129</AK1>

<AN2>48</AN2>

<AM2>311</AM2>

<AS2>82</AS2>

<AMN4>0</AMN4>

<AM4>0</AM4>

<AMS4>2</AMS4>

<GSA>353</GSA>

<GQ1>116</GQ1>

<GO1>151</GO1>

<GK1>192</GK1>

<GN2>173</GN2>

<GM2>209</GM2>

<GS2>277</GS2>

<GMN4>0</GMN4>

<GM4>0</GM4>

<GMS4>226</GMS4>

<LA><![CDATA[22 39 S]]></LA>

<LO><![CDATA[167 26 E]]></LO>

<UTC><![CDATA[ UT+11.0]]></UTC>

</row>

<row>

<NOM><![CDATA[OUVEA]]></NOM>

<ZO>100</ZO>

<ASA>0</ASA>

<AQ1>12</AQ1>

<AO1>80</AO1>

<AK1>155</AK1>

<AN2>85</AN2>

<AM2>369</AM2>

<AS2>85</AS2>

<AMN4>0</AMN4>

<AM4>0</AM4>

<AMS4>0</AMS4>

<GSA>0</GSA>

<GQ1>126</GQ1>

<GO1>165</GO1>

<GK1>200</GK1>

<GN2>145</GN2>

<GM2>174</GM2>

<GS2>183</GS2>

<GMN4>0</GMN4>

<GM4>0</GM4>

<GMS4>0</GMS4>

<LA><![CDATA[20 32 S]]></LA>

<LO><![CDATA[166 33 E]]></LO>

<UTC><![CDATA[ UT+11.0]]></UTC>

</row>

<row>

<NOM><![CDATA[THIO]]></NOM>

<ZO>85</ZO>

<ASA>0</ASA>

<AQ1>11</AQ1>

<AO1>79</AO1>

<AK1>162</AK1>

<AN2>85</AN2>

<AM2>367</AM2>

<AS2>76</AS2>

<AMN4>4</AMN4>

<AM4>4</AM4>

<AMS4>2</AMS4>

<GSA>0</GSA>

<GQ1>136</GQ1>

<GO1>157</GO1>

<GK1>194</GK1>

<GN2>150</GN2>

<GM2>173</GM2>

<GS2>187</GS2>

<GMN4>80</GMN4>

<GM4>114</GM4>

<GMS4>255</GMS4>

<LA><![CDATA[21 37 S]]></LA>

<LO><![CDATA[166 14 E]]></LO>

<UTC><![CDATA[ UT+11.0]]></UTC>

</row>

<row>

<NOM><![CDATA[KOUMAC]]></NOM>

<ZO>96</ZO>

<ASA>56</ASA>

<AQ1>13</AQ1>

<AO1>74</AO1>

<AK1>167</AK1>

<AN2>67</AN2>

<AM2>388</AM2>

<AS2>145</AS2>

<AMN4>0</AMN4>

<AM4>3</AM4>

<AMS4>1</AMS4>

<GSA>334</GSA>

<GQ1>142</GQ1>

<GO1>169</GO1>

<GK1>201</GK1>

<GN2>219</GN2>

<GM2>226</GM2>

<GS2>254</GS2>

<GMN4>0</GMN4>

<GM4>242</GM4>

<GMS4>357</GMS4>

<LA><![CDATA[20 29 S]]></LA>

<LO><![CDATA[164 11 E]]></LO>

<UTC><![CDATA[ UT+11.0]]></UTC>

</row>

<row>

<NOM><![CDATA[RIKITEA]]></NOM>

<ZO>54</ZO>

<ASA>45</ASA>

<AQ1>3</AQ1>

<AO1>18</AO1>

<AK1>23</AK1>

<AN2>70</AN2>

<AM2>275</AM2>

<AS2>91</AS2>

<AMN4>0</AMN4>

<AM4>2</AM4>

<AMS4>0</AMS4>

<GSA>4</GSA>

<GQ1>281</GQ1>

<GO1>269</GO1>

<GK1>215</GK1>

<GN2>47</GN2>

<GM2>60</GM2>

<GS2>8</GS2>

<GMN4>0</GMN4>

<GM4>19</GM4>

<GMS4>0</GMS4>

<LA><![CDATA[23  7 S]]></LA>

<LO><![CDATA[134 58 W]]></LO>

<UTC><![CDATA[ UT-10.0]]></UTC>

</row>

<row>

<NOM><![CDATA[RAPA]]></NOM>

<ZO>50</ZO>

<ASA>95</ASA>

<AQ1>7</AQ1>

<AO1>24</AO1>

<AK1>29</AK1>

<AN2>41</AN2>

<AM2>186</AM2>

<AS2>111</AS2>

<AMN4>0</AMN4>

<AM4>0</AM4>

<AMS4>0</AMS4>

<GSA>6</GSA>

<GQ1>275</GQ1>

<GO1>279</GO1>

<GK1>253</GK1>

<GN2>352</GN2>

<GM2>354</GM2>

<GS2>7</GS2>

<GMN4>0</GMN4>

<GM4>0</GM4>

<GMS4>0</GMS4>

<LA><![CDATA[27 37 S]]></LA>

<LO><![CDATA[144 19 W]]></LO>

<UTC><![CDATA[ UT-10.0]]></UTC>

</row>

<row>

<NOM><![CDATA[RAIVAVAE]]></NOM>

<ZO>53</ZO>

<ASA>0</ASA>

<AQ1>3</AQ1>

<AO1>19</AO1>

<AK1>21</AK1>

<AN2>40</AN2>

<AM2>134</AM2>

<AS2>113</AS2>

<AMN4>0</AMN4>

<AM4>0</AM4>

<AMS4>0</AMS4>

<GSA>0</GSA>

<GQ1>336</GQ1>

<GO1>301</GO1>

<GK1>230</GK1>

<GN2>14</GN2>

<GM2>2</GM2>

<GS2>21</GS2>

<GMN4>0</GMN4>

<GM4>0</GM4>

<GMS4>0</GMS4>

<LA><![CDATA[23 52 S]]></LA>

<LO><![CDATA[147 41 W]]></LO>

<UTC><![CDATA[ UT-10.0]]></UTC>

</row>

<row>

<NOM><![CDATA[PAPEETE]]></NOM>

<ZO>44</ZO>

<ASA>22</ASA>

<AQ1>4</AQ1>

<AO1>16</AO1>

<AK1>6</AK1>

<AN2>9</AN2>

<AM2>62</AM2>

<AS2>69</AS2>

<AMN4>0</AMN4>

<AM4>1</AM4>

<AMS4>0</AMS4>

<GSA>16</GSA>

<GQ1>306</GQ1>

<GO1>309</GO1>

<GK1>140</GK1>

<GN2>346</GN2>

<GM2>19</GM2>

<GS2>19</GS2>

<GMN4>0</GMN4>

<GM4>104</GM4>

<GMS4>0</GMS4>

<LA><![CDATA[17 32 S]]></LA>

<LO><![CDATA[149 34 W]]></LO>

<UTC><![CDATA[ UT-10.0]]></UTC>

</row>

<row>

<NOM><![CDATA[PAPEETE]]></NOM>

<ZO>44</ZO>

<ASA>23</ASA>

<AQ1>0</AQ1>

<AO1>4</AO1>

<AK1>0</AK1>

<AN2>9</AN2>

<AM2>58</AM2>

<AS2>68</AS2>

<AMN4>0</AMN4>

<AM4>0</AM4>

<AMS4>0</AMS4>

<GSA>21</GSA>

<GQ1>0</GQ1>

<GO1>204</GO1>

<GK1>0</GK1>

<GN2>346</GN2>

<GM2>16</GM2>

<GS2>7</GS2>

<GMN4>0</GMN4>

<GM4>0</GM4>

<GMS4>0</GMS4>

<LA><![CDATA[17 32 S]]></LA>

<LO><![CDATA[149 34 W]]></LO>

<UTC><![CDATA[ UT-10.0]]></UTC>

</row>

<row>

<NOM><![CDATA[MAKATEA]]></NOM>

<ZO>30</ZO>

<ASA>0</ASA>

<AQ1>3</AQ1>

<AO1>14</AO1>

<AK1>2</AK1>

<AN2>24</AN2>

<AM2>122</AM2>

<AS2>57</AS2>

<AMN4>0</AMN4>

<AM4>0</AM4>

<AMS4>0</AMS4>

<GSA>0</GSA>

<GQ1>294</GQ1>

<GO1>309</GO1>

<GK1>109</GK1>

<GN2>34</GN2>

<GM2>78</GM2>

<GS2>31</GS2>

<GMN4>0</GMN4>

<GM4>0</GM4>

<GMS4>0</GMS4>

<LA><![CDATA[15 49 S]]></LA>

<LO><![CDATA[148 17 W]]></LO>

<UTC><![CDATA[ UT-10.0]]></UTC>

</row>

<row>

<NOM><![CDATA[LAROCHE]]></NOM>

<ZO>99</ZO>

<ASA>0</ASA>

<AQ1>13</AQ1>

<AO1>72</AO1>

<AK1>156</AK1>

<AN2>89</AN2>

<AM2>393</AM2>

<AS2>51</AS2>

<AMN4>0</AMN4>

<AM4>0</AM4>

<AMS4>0</AMS4>

<GSA>0</GSA>

<GQ1>135</GQ1>

<GO1>163</GO1>

<GK1>197</GK1>

<GN2>142</GN2>

<GM2>176</GM2>

<GS2>200</GS2>

<GMN4>0</GMN4>

<GM4>0</GM4>

<GMS4>0</GMS4>

<LA><![CDATA[21 27 S]]></LA>

<LO><![CDATA[168  1 E]]></LO>

<UTC><![CDATA[ UT 11.0]]></UTC>

</row>

</data>

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Jan 16, 2018 Jan 16, 2018

Copy link to clipboard

Copied

part of it latitude and longitude, but there's other info there.  that should be pulled from a data server so the info is current if you want the current tide.

or if you just want to calculate the approximate tide, that might be doable with those data but you need the api that explains what those entries are.  ie, where'd you get the xml?

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Contributor ,
Jan 16, 2018 Jan 16, 2018

Copy link to clipboard

Copied

In fact, the code is calculating the tides. This way, the user doesn't need an internet connection. If it could also calculate the tide of the current time it would be great.

Do you want me to send you the code to take a look at it ? (50$ if you're interested)

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Jan 17, 2018 Jan 17, 2018

Copy link to clipboard

Copied

LATEST

send me an email via www.kglad.com > contact

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines