";
var altazdata=[[]];
var reddatall=[[]];
var orangedatall=[[]];
var bluedatall=[[]];
var darkgreendatall=[[]];
var blackdatall=[[]];
var darkdatall=[[]];
var aldata=[];
var reddata=[];
var orangedata=[];
var bluedata=[];
var darkgreendata=[];
var blackdata=[];
var darkdata=[];
var darkdata1=[];
var kotalat=obscopy.latitude;
var kotalon=obscopy.longitude;
var persisdatall = [[]];
var persisdata = [];
var persisdata2 = [];
var darkdata2=[];
var darkdata2ll=[[]];
var ijtimakdata=[];
if (map != undefined) {
map.remove();
map = L.map('map').setView([0, 0],1);
markersLayer = new L.LayerGroup();
markersLayer.clearLayers();
}
var imageUrl = 'img/al-habib.info.text.png',
imageBounds = [[-68.5, -178], [-72,-118]];
//var maplayer = "https://{s}.www.toolserver.org/tiles/bw-mapnik/{z}/{x}/{y}.png";
var maplayer = "https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png";
L.tileLayer(maplayer, {
maxZoom: 18,
attribution: '©
HilalMap | ' +
'Map data ©
OpenStreetMap contributors, ' +
'
CC-BY-SA'
}).addTo(map);
for (var la=60;la>=-60;la--) {
lat=1*la;
if(la%1==0) {
var lpad=(lat<10&&lat>-10)?lat+" ":lat;
lpad+=(lat>=0)?" ":"";
htmlresults2 +=tick1+lpad+spanend;
} else {
htmlresults2 +=tick1+" "+spanend;
}
for (var lo=-180;lo<=180;lo++) {
lon=1*lo;
obscopy.latitude=lat;
obscopy.longitude=lon*-1;
obscopy.tz=Math.round(lon/15)*60*-1;
var sunset = sunrise(obscopy,-0.833);
var moonset = moonrise(obscopy);
var besttime = parsecol(sunset[1]) + 4/9 * (moonset[1]-parsecol(sunset[1]));
//console.log("Sunset "+sunset[1]);
//console.log("Besttime "+hmsstring(besttime));
obscopy.hours=hmsarray(parsecol(hmsstring(besttime)))[0];
obscopy.minutes=hmsarray(parsecol(hmsstring(besttime)))[1];
obscopy.seconds=hmsarray(parsecol(hmsstring(besttime)))[2];
//console.log("obscopy "+obscopy.minutes);
sun_xyz=new Array(0.0,0.0,0.0);
earth_xyz=helios(planets[2],obscopy);
radec=radecr(sun_xyz,earth_xyz,obscopy);
altaz=radtoaa(radec[0],radec[1],obscopy);
moontab=MoonPos(obscopy);
var cosARCL=cosd(Math.abs(moontab[6]-altaz[0]))*cosd(Math.abs(altaz[1]-moontab[4]));
var ARCL=rev(acosd(cosARCL));
//other formula
//ARCL = rev(acosd(cosd(moontab[0] -radec[0]) * cosd(moontab[1])));
var SD = 56204.92/ (moontab[2]/6378.1370) * (1 + sind(moontab[3])/(moontab[2]/6378.1370) ) ;
//seconds of arc
SD = SD/60/60;
//degrees
var W = SD * (1 - cosd(ARCL));
//degrees
W = W*60;
//minutes of arc
//yallop
//SD = 0.27245*moontab[7];
//SD = SD * (1 + sind(moontab[3])* sind(moontab[7]));
//W = SD * (1 - cosd (ARCL) );
var ARCV = (moontab[3]-altaz[0]);
//topocentric
ARCV = (moontab[6]-altaz[0]);
//other formula
DAZ = Math.abs(altaz[1]-moontab[4]);
ARCV2 = rev(acosd(cosd(ARCL)/cosd(DAZ)));
//PERSIS
var vcode2="";
//ARCL>=6.5, ARCV >=4
//console.log("LAG: "+(moonset[1]-parsecol(sunset[1])));
//if (ARCL>=6.5 && ARCV >=4.0 && (moonset[1]-parsecol(sunset[1]))>=0.5) {
//Kriteria RHI, 2011
//if ( ARCV >= (0.099 *DAZ*DAZ-1.490*DAZ+10.382) ) {
//Kriteria RHI me
//if ( ARCV >= (-0.18*DAZ+8.510382) && ARCV >= 4 ) {
if (ARCL>=6.4 && ARCV >=4.0) {
//console.log("ARCL="+ARCL+", ARCV="+ARCV);
//console.log("persis");
vcode2="persis";
} else {
vcode2="";
}
//Schoch's
//var Q =(ARCV-(9.37643-7.045*W+6.0672*W*W-3.002*W*W*W))/10;
/*
var Vis = "Not Visible";
var vcode=white;
if (Q >=0.431) { Vis = "Visible by naked eyes.";vcode=darkgreen; }
else if (Q >=0.181) { Vis = "Visible if perfect condition.";vcode=green; }
else if (Q >=0.07) { Vis = "May need optical aid.";vcode=blue; }
else if (Q >=0.010) { Vis = "Will need optical aid.";vcode=orange; }
else if (Q >=-0.044 ) { Vis = "Optical aid only.";vcode=red; }
*/
if (kriteria==0) {
var Q = ARCV - (-0.1018 * W * W * W + 0.7319 * W *W - 6.3226 * W + 7.1651);
// Kriteria Odeh
/*
V ≥ 5.65: Zone A. Crescent is visible by naked eyes.
2 ≤ V < 5.65: Zone B. Crescent is visible by optical aid, and it could be seen by naked eyes.
−0.96 ≤V < 2: Zone C. Crescent is visible by optical aid only.
V < −0.96: Zone D. Crescent is not visible even by optical aid.
*/
var Vis = "Not Visible";
var vcode=white;
// if (Q>= 99.65) { Vis = "Dummy.";vcode=darkgreen; }
if (Q>= 5.65) { Vis = "Visible by naked eyes.";vcode=green; }
else if (Q >=2.0) { Vis = "May need optical aid.";vcode=blue; }
else if (Q >= -0.96 ) { Vis = "Optical aid only.";vcode=orange; }
// else if (Q >= -0.06 ) { Vis = "Optical aid only.";vcode=red; }
}
//Yallop 1997
if (kriteria==1) {
var Q = (ARCV - 11.8371 + 6.3226 * W - 0.7319 * W * W + 0.1018 * W * W * W)/10;
/*
q > +0·216 Easily visible ( ARCL ≥ 12°)
+0·216 ≥ q > −0·014 Visible under perfect conditions
−0·014 ≥ q > −0·160 May need optical aid to find crescent
−0·160 ≥ q > −0·232 Will need optical aid to find crescent
−0·232 ≥ q > −0·293 Not visible with a telescope ARCL ≤ 8·5°
−0·293 ≥ q Not visible, below Danjon limit, ARCL ≤ 8°
*/
var Vis = "Not Visible";
var vcode=white;
if (Q >0.216) { Vis = "Visible by naked eyes.";vcode=darkgreen; }
else if (Q >-0.014) { Vis = "Visible under perfect conditions.";vcode=green; }
else if (Q >-0.160) { Vis = "May need optical aid.";vcode=blue; }
else if (Q >-0.232) { Vis = "Will need optical aid.";vcode=orange; }
else if (Q >-0.293 ) { Vis = "Optical aid only.";vcode=red; }
}
//Shaukat 2011
if (kriteria==2) {
var Q = (ARCV - 11.8371 + 6.3226 * W - 0.7319 * W * W + 0.1018 * W * W * W)/10;
/*
Easily visible to the naked eye
q>=0.27
Visible to the naked eye under perfect atmospheric conditions
0.27>q>=-0.024
May need optical aid to find the crescent before it can be seen with naked eye
-0.024>q>=-0.212
Can only be seen with binoculars or a (small) conventional telescope
-0.212>q>=-0.48
Below the normal limit of detection with a (small) conventional telescope
-0.48>q>=-0.523
Not visible with even large observatory type telescopes
q<-0.523
*/
var Vis = "Not Visible";
var vcode=white;
if (Q >=0.122) { Vis = "Visible by naked eyes.";vcode=darkgreen; }
else if (Q >=-0.15) { Vis = "Visible under perfect condition.";vcode=green; }
else if (Q >=-0.32) { Vis = "May need optical aid.";vcode=blue; }
else if (Q >=-0.59) { Vis = "Visible with optical aid.";vcode=orange; }
//else if (Q >=-0.523 ) { Vis = "Below limit of optical aid.";vcode=red; }
}
//Qureshi & Khan, 2010
if (kriteria==3) {
var Q = (ARCV - 10.4341759 + 5.42264313 * W - 0.2222075057 * W * W + 0.3519637 * W * W * W)/10;
/*
Easily visible >0.15
Visible under perfect condition 0.05 < vp < 0.15
May require optical aid -0.06 < vp < 0.05
Require optical aid -0.16 < vp < -0.06
Not visible < -0.16
*/
var Vis = "Not Visible";
var vcode=white;
if (Q>= 0.15) { Vis = "Visible by naked eyes.";vcode=darkgreen; }
else if (Q >=0.05) { Vis = "Visible under perfect condition.";vcode=green; }
else if (Q >= -0.06 ) { Vis = "May need optical aid.";vcode=blue; }
else if (Q >= -0.16 ) { Vis = "Optical aid only.";vcode=orange; }
}
//LAPAN 2010
if (kriteria==4) {
//console.log(ARCL);
//if (ARCL>=6.4 && ARCV >=4.0) {
//var Q = ARCV - (-0.1018 * W * W * W + 0.7319 * W *W - 6.3226 * W + 7.1651);
var Vis = "Not Visible";
var vcode=white;
// if (Q>= 99.65) { Vis = "Dummy.";vcode=darkgreen; }
if (ARCL/1>6.4 && ARCV/1 >4.0) { Vis = "Visible by naked eyes.";vcode=darkgreen; }
//else if (ARCL/1>=7.4 && ARCV/1 >=6.0 ) { Vis = "May need optical aid.";vcode=green; }
//else if (Q >= -0.96 ) { Vis = "Optical aid only.";vcode=orange; }
// else if (Q >= -0.06 ) { Vis = "Optical aid only.";vcode=red; }
}
//garis konjungsi
var illu=moontab[5];
//console.log("("+illu+","+lon+")");
if(illu>=180) {
htmlresults2 +=dark+" "+spanend;
darkdata1.push(lon);
ijtimakdata.push(lon);
// darkdata1.splice(-1,0,lon);
}
//htmlresults2 +=sunset[1];
if ( (moonset[1]-parsecol(sunset[1])>0) ) {
//LAG
htmlresults2 +=vcode+" "+spanend;
if (kriteria==4) {
if (vcode2=='persis') {
//console.log("Lat: "+lat+", lon: "+lon+", ARCL="+ARCL+", ARCV: "+ARCV);
persisdata.push(lon);
}
}
if (vcode==darkgreen) {
darkgreendata[lat]=lon;
}
else if (vcode==green) {
aldata[lat]=lon;
}
else if (vcode==blue) {
bluedata[lat]=lon;
}
else if (vcode==orange) {
orangedata[lat]=lon;
}
else if (vcode==red) {
reddata[lat]=lon;darkgreendatall
}
} else {
blackdata[lat]=lon;
lo2=lo;
for(lo=lo2;lo<=72;lo++) {
htmlresults2 +=black+" "+spanend;
}
break;
}
}
//next latitude
//console.log("persisdata= "+persisdata);
persisdata2[lat]=persisdata.pop();
if(persisdata2[lat]) {
//console.log("persisdata2= "+persisdata2);
persisdatall[0].push([lat,persisdata2[lat]]);
//console.log("persisdatall= "+persisdatall[0].toSource());
}
persisdata=[];
//black data
if(blackdata[lat]) {
blackdatall[0].push([lat,blackdata[lat]]);
}
//dark data
//alert("Illu="+illu+" Lat="+lat+", "+darkdata1.toSource());
darkdata[0]=darkdata1.pop();
darkdata[1]=darkdata1.shift();
darkdata[lat]=[[lat,darkdata[0]],[lat,darkdata[1]]];
//alert("Illu="+illu+" Lat="+lat+", "+darkdata.toSource());
if(darkdata[0] && darkdata[1] && darkdatall[0].length<2) {
darkdatall[0].push([lat,darkdata[0]]);
darkdatall[0].push([lat,darkdata[1]]);
} else if(darkdata[0] && darkdata[1] && darkdatall[0].length>=2){
darkdatall[0].splice(darkdatall[0].length/2,0,[lat,darkdata[0]],[lat,darkdata[1]]);
}
//garis ijtima'
//console.log("ijtimak data at lat: "+lat+", "+ijtimakdata.toSource() );;
darkdata2[lat]=ijtimakdata.pop();
if(darkdata2[lat]) {
//console.log("at lat: "+lat+", "+darkdata2[lat].toSource() );
//console.log("darkdata2= "+darkdata2.toSource());
darkdata2ll[0].push([lat,darkdata2[lat]]);
//console.log("darkdata2ll= "+darkdata2ll[0].toSource());
}
ijtimakdata=[];
//alert("Illu="+illu+" Lat="+lat+", "+darkdatall.toSource());
darkdata1=[];
//darkgreen data
if(darkgreendata[lat]) {
darkgreendatall[0].push([lat,darkgreendata[lat]]);
}
//green data
if(aldata[lat]) {
altazdata[0].push([lat,aldata[lat]]);
}
//blue data
if(bluedata[lat]) {
bluedatall[0].push([lat,bluedata[lat]]);
}
//orange data
if(orangedata[lat]) {
orangedatall[0].push([lat,orangedata[lat]]);
}
//red data
if(reddata[lat]) {
reddatall[0].push([lat,reddata[lat]]);
}
htmlresults2 +="
";
}
darkgreendatall[0]=adjustdata(darkgreendatall[0]);
altazdata[0]=adjustdata(altazdata[0]);
bluedatall[0]=adjustdata(bluedatall[0]);
orangedatall[0]=adjustdata(orangedatall[0]);
reddatall[0]=adjustdata(reddatall[0]);
//darkdatall[0]=adjustdatarev(darkdatall[0]);
blackdatall[0]=adjustdatarev(blackdatall[0]);
//console.log(persisdatall[0].toSource());
//data
var blackpoly=blackdatall[0];
var darkpoly=darkdatall[0];
var redpoly=reddatall[0];
var orangepoly=orangedatall[0];
var bluepoly=bluedatall[0];
var greenpoly=altazdata[0];
var darkgreenpoly=darkgreendatall[0];
var persisline=persisdatall[0];
var ijtimakline=darkdata2ll[0];
var ijtimakpolyline = L.polyline(ijtimakline, {weight:1,color: 'red'}).addTo(map);
//var polyline = L.polyline(persisline, {weight:1,color: 'blue'}).addTo(map);
//adding polygon
if (redpoly.length>0) {
if (orangepoly.length>0) {
var polygonred = L.polygon([redpoly,orangepoly],{smoothFactor:2,dashArray:'1,5',opacity:1.0,weight:1,color: 'red',fillColor: 'red'}).addTo(map);
if (bluepoly.length>0) {
var polygonorange = L.polygon([orangepoly,bluepoly],{smoothFactor:2,dashArray:'1,5',opacity:1.0,weight:1,color: 'orange',fillColor: 'orange'}).addTo(map);
if (greenpoly.length>0) {
var polygonblue = L.polygon([bluepoly,greenpoly],{smoothFactor:2,dashArray:'1,5',opacity:1.0,weight:1,color: 'yellow',fillColor: 'yellow'}).addTo(map);
if (darkgreenpoly.length>0) {
var polygongreen = L.polygon([greenpoly,darkgreenpoly],{smoothFactor:2,dashArray:'1,5',opacity:1.0,weight:1,color: 'green',fillColor: 'green'}).addTo(map);
} else {
var polygongreen = L.polygon(greenpoly,{smoothFactor:2,dashArray:'1,5',opacity:1.0,weight:1,color: 'green',fillColor: 'green'}).addTo(map);
}
} else {
var polygonblue = L.polygon(bluepoly,{smoothFactor:2,dashArray:'1,5',opacity:1.0,weight:1,color: 'yellow',fillColor: 'yellow'}).addTo(map);
}
} else {
var polygonorange = L.polygon(orangepoly,{smoothFactor:2,dashArray:'1,5',opacity:1.0,weight:1,color: 'orange',fillColor: 'orange'}).addTo(map);
}
} else {
var polygonred = L.polygon(redpoly,{smoothFactor:2,dashArray:'1,5',opacity:1.0,weight:1,color: 'red',fillColor: 'red'}).addTo(map);
}
}
else if (orangepoly.length>0) {
if (bluepoly.length>0) {
var polygonorange = L.polygon([orangepoly,bluepoly],{smoothFactor:2,dashArray:'1,5',opacity:1.0,weight:1,color: 'orange',fillColor: 'orange'}).addTo(map);
if (greenpoly.length>0) {
var polygonblue = L.polygon([bluepoly,greenpoly],{smoothFactor:2,dashArray:'1,5',opacity:1.0,weight:1,color: 'yellow',fillColor: 'yellow'}).addTo(map);
if (darkgreenpoly.length>0) {
var polygongreen = L.polygon([greenpoly,darkgreenpoly],{smoothFactor:2,dashArray:'1,5',opacity:1.0,weight:1,color: 'green',fillColor: 'green'}).addTo(map);
} else {
var polygongreen = L.polygon(greenpoly,{smoothFactor:2,dashArray:'1,5',opacity:1.0,weight:1,color: 'green',fillColor: 'green'}).addTo(map);
}
} else {
var polygonblue = L.polygon(bluepoly,{smoothFactor:2,dashArray:'1,5',opacity:1.0,weight:1,color: 'yellow',fillColor: 'yellow'}).addTo(map);
}
} else {
var polygonorange = L.polygon(orangepoly,{smoothFactor:2,dashArray:'1,5',opacity:1.0,weight:1,color: 'orange',fillColor: 'orange'}).addTo(map);
}
}
else if (bluepoly.length>0) {
if (greenpoly.length>0) {
var polygonblue = L.polygon([bluepoly,greenpoly],{smoothFactor:2,dashArray:'1,5',opacity:1.0,weight:1,color: 'yellow',fillColor: 'yellow'}).addTo(map);
if (darkgreenpoly.length>0) {
var polygongreen = L.polygon([greenpoly,darkgreenpoly],{smoothFactor:2,dashArray:'1,5',opacity:1.0,weight:1,color: 'green',fillColor: 'green'}).addTo(map);
} else {
var polygongreen = L.polygon(greenpoly,{smoothFactor:2,dashArray:'1,5',opacity:1.0,weight:1,color: 'green',fillColor: 'green'}).addTo(map);
}
} else {
var polygonblue = L.polygon(bluepoly,{smoothFactor:2,dashArray:'1,5',opacity:1.0,weight:1,color: 'yellow',fillColor: 'yellow'}).addTo(map);
}
}
else if (greenpoly.length>0) {
if (darkgreenpoly.length>0) {
var polygongreen = L.polygon([greenpoly,darkgreenpoly],{smoothFactor:2,dashArray:'1,5',opacity:1.0,weight:1,color: 'green',fillColor: 'green'}).addTo(map);
} else {
var polygongreen = L.polygon(greenpoly,{smoothFactor:2,dashArray:'1,5',opacity:1.0,weight:1,color: 'green',fillColor: 'green'}).addTo(map);
}
}
if (darkgreenpoly.length>0) {
var polygondarkgreen = L.polygon(darkgreenpoly,{smoothFactor:2,dashArray:'1,5',opacity:1.0,weight:1,color: '#040',fillColor: '#040',fillOpacity:0.3}).addTo(map);
}
if (darkpoly.length>0) {
var polygondark = L.polygon(darkpoly,{smoothFactor:2,dashArray:'1,5',fillOpacity:0.5,weight:0.5,color: '#335',fillColor: '#335'}).addTo(map);
}
if (blackpoly.length>0) var polygonblack = L.polygon(blackpoly,{smoothFactor:2,dashArray:'1,5',fillOpacity:0.5,weight:1,color: 'black',fillColor: 'black'}).addTo(map);
var masktop = [[90,-180],[90,180],[60,180],[60,-180]];
var maskbot = [[-90,-180],[-90,180],[-60,180],[-60,-180]];
var polygonmasktop = L.polygon(masktop,{fillOpacity:0.5,weight:0,fillColor: 'white',color:'white',weight:0.5}).addTo(map);
var polygonmaskbot = L.polygon(maskbot,{fillOpacity:0.5,weight:0,fillColor: 'white',color:'white',weight:0.5}).addTo(map);
L.imageOverlay(imageUrl, imageBounds).addTo(map);
marker = L.marker([kotalat,-(kotalon)]).bindPopup("Lokasi Pengamatan:
"+oname);
markersLayer.addLayer(marker);
//console.log(markersLayer);
markersLayer.addTo(map);
L.circle([kotalat,-(kotalon)], 30, {color:'red',fillOpacity:1,weight:1,fillColor: 'red'}).addTo(map).bindPopup("Lokasi Pengamatan:
"+oname);
//alert(kotalat+","+kotalon);
//alert(altazdata[0].toSource());
//alert(reddatall[0].toSource());
//alert(aldata[0].toSource());
htmlresults2 +="
";
htmlresults3 +="