"; htmlresults2 +="
"; 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 +="
"; htmlresults3 +="

HILALMAP

"; htmlresults3 +="

Ijtima': "+namahari[newmoon[3]]+", "+newmoon[2]+" "+bulanmasehi[newmoon[1]-1]+" "+newmoon[0]+", "+newmoon[4]+":"+newmoon[5]+" UTC. Nomor Lunasi Islam (ILN): "+lunations[2]+"

"; htmlresults3 +=spanend+""; //htmlresults3 +="
"; //htmlresults3 +=spanend+""; htmlresults2 +="
"; if (kriteria==0) { htmlresults3 +=""; htmlresults3 +=""; htmlresults3 +=""; htmlresults3 +=""; htmlresults3 +=""; htmlresults3 +=""; htmlresults3 +=""; htmlresults3 +=""; htmlresults3 +=""; htmlresults3 +=""; htmlresults3 +=""; htmlresults3 +=""; htmlresults3 +=""; htmlresults3 +="
  Bulan di bawah ufuk saat matahari terbenam.  Hanya terlihat dengan alat optis.  
  Bulan belum ijtima' (konjungsi).  Mungkin perlu bantuan alat optis.  
  Bulan di atas ufuk, tidak kasat mata (wujudul hilal).  Mudah terlihat oleh mata.  Kriteria "+criterion+"
"; } if (kriteria==1 || kriteria==2|| kriteria==3) { htmlresults3 +=""; htmlresults3 +=""; htmlresults3 +=""; htmlresults3 +=""; htmlresults3 +=""; htmlresults3 +=""; htmlresults3 +=""; htmlresults3 +=""; htmlresults3 +=""; htmlresults3 +=""; htmlresults3 +=""; htmlresults3 +=""; htmlresults3 +=""; htmlresults3 +="
  Bulan di bawah ufuk saat matahari terbenam.  Sulit dilihat meski dengan alat optis.  Bisa terlihat mata jika cuaca cerah.
  Bulan belum ijtima' (konjungsi).  Hanya terlihat dengan alat optis.  Mudah terlihat oleh mata.
  Tanpa arsiran, tidak kasat mata (wujudul hilal).  Perlu bantuan alat optis.  Kriteria "+criterion+"
"; } if (kriteria==4) { htmlresults3 +=""; htmlresults3 +=""; htmlresults3 +=""; htmlresults3 +=""; htmlresults3 +=""; htmlresults3 +=""; htmlresults3 +=""; htmlresults3 +=""; htmlresults3 +=""; htmlresults3 +=""; htmlresults3 +=""; htmlresults3 +=""; htmlresults3 +=""; htmlresults3 +="
  Bulan di bawah ufuk saat matahari terbenam.  Bulan belum ijtima' (konjungsi).
  Tanpa arsiran, tidak kasat mata (wujudul hilal).  Bisa terlihat mata (Alt > 4, Elongasi > 6,4).
    Kriteria "+criterion+"
"; } htmlresults2 +=spanend+""; htmlresults2 +="
"; //mapping general ends //print // htmlresults +="

"; // htmlresults +=""; // htmlresults +=""; // htmlresults +="
PrintClose
"; //alert(htmlresults.toSource()); var rdata=document.getElementById("rukyatdata"); var rlegend=document.getElementById("legend"); var rmapheader_imonth=document.getElementById("mapheader_imonth"); rdata.innerHTML=htmlresults; rlegend.innerHTML=htmlresults3; imonth_text +="
Hari "+mday+", "+mdate+""; rmapheader_imonth.innerHTML=imonth_text; document.getElementById('Default').value="Reset"; // close(); // } // pwin.focus(); } function doMoonSighting180(obs,kriteria) { var obscopy=new Object(); for (var i in obs) obscopy[i] = obs[i]; //mappping general var red="
"; var orange="
"; var black="
"; var dark="
"; var white="
"; var white2="
"; var blue="
"; var green="
"; var darkgreen="
"; 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 bulanmasehi = new Array("Januari","Februari","Maret","April","Mei","Juni","Juli","Agustus","September","Oktober","November","Desember"); var namahari = new Array("Ahad","Senin","Selasa","Rabu","Kamis","Jum'at","Sabtu"); var lunations; var newmoonjd; var newmoon; var newmoondate; var start; var newmoondarkgreen; var htmlresults2=''; for (start=0;start<1440;start++) { lunations=doLunation(obscopy); newmoonjd=lunations[5]; newmoon=jdtocd(newmoonjd); newmoondate=namahari[newmoon[3]]+", "+newmoon[2]+" "+bulanmasehi[newmoon[1]-1]+" "+newmoon[0]+", "+newmoon[4]+":"+newmoon[5]+" UTC"; //one day after newmoon newmoonjd=lunations[5]+1; newmoon=jdtocd(newmoonjd); obscopy.day=newmoon[2]; obscopy.month=newmoon[1]; obscopy.year=newmoon[0]; for (var la=(-7/5);la>=(-7/5);la--) { lat=5*la; for (var lo=(106.5/3);lo<=(106.5/3);lo++) { lon=3*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.day); 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)); 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))); if (kriteria==0) { var Q = ARCV - (-0.1018 * W * W * W + 0.7319 * W *W - 6.3226 * W + 7.1651); // Kriteria Odeh 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; 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; 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; var Vis = "Not Visible"; var vcode=white; // if (Q>= 99.65) { Vis = "Dummy.";vcode=darkgreen; } 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; } } // Kriteria 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) { console.log(ARCL);Vis = "Visible by naked eyes.";vcode=green; } //else if (ARCL/1>=7.4 && ARCV/1 >=5.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; } } var illu=moontab[5]; if ((illu<=180) && (moonset[1]-parsecol(sunset[1])>0)) { //LAG //htmlresults2 +=vcode+" "+spanend; 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; } } else { blackdata[lat]=lon; lo2=lo; for(lo=lo2;lo<=72;lo++) { //htmlresults2 +=black+" "+spanend; } break; } } //next latitude //black data if(blackdata[lat]) { blackdatall[0].push([lat,blackdata[lat]]); } //red data if(reddata[lat]) { reddatall[0].push([lat,reddata[lat]]); } //orange data if(orangedata[lat]) { orangedatall[0].push([lat,orangedata[lat]]); } //blue data if(bluedata[lat]) { bluedatall[0].push([lat,bluedata[lat]]); } //green data if(aldata[lat]) { altazdata[0].push([lat,aldata[lat]]); } //darkgreen data if(darkgreendata[lat]) { darkgreendatall[0].push([lat,darkgreendata[lat]]); } //htmlresults2 +="
"; } //la loop end //console.log(darkgreendatall[0].toSource()); //console.log(darkgreendatall[0].length); if(darkgreendatall[0].length>0) { newmoondarkgreen="Visible"; } else { newmoondarkgreen="Not visible"; } if(altazdata[0].length>0) { newmoongreen="Visible if perfect"; } else { newmoongreen="Not visible"; } //console.log(altazdata[0].toSource()); if(bluedatall[0].length>0) { newmoonblue="May need optical aid"; } else { newmoonblue="Not visible"; } //console.log("Start "+start+", newmoonjd: "+newmoonjd+", date: "+newmoondate); //console.log("Status "+newmoondarkgreen); //console.log(""+start+";"+newmoonjd+";"+newmoondate+";"+newmoondarkgreen); htmlresults2+=""; //htmlresults2+=""; newmoonjd+=29; newmoon=jdtocd(newmoonjd); obscopy.day=newmoon[2]; obscopy.month=newmoon[1]; obscopy.year=newmoon[0]; obscopy.hours=0; obscopy.minutes=0; obscopy.seconds=0; darkgreendata=[]; darkgreendatall=[[]]; newmoondarkgreen=''; aldata=[]; altazdata=[[]]; newmoongreen=''; bluedata=[]; bluedatall=[[]]; newmoonblue=''; } //start newmoon loop end htmlresults2+='
"+(start+1.0)+""+newmoonjd+""+newmoondate+""+newmoondarkgreen+""+newmoongreen+""+newmoonblue+""+(newmoonjd-Math.floor(newmoonjd)-0.5)+""+(moonset[1]-parsecol(sunset[1]))+""+Math.round((100.0*(1.0+cosd(moontab[5]))/2.0)*100)/100+""+W+"
"+start+""+newmoonjd+""+newmoondate+""+newmoondarkgreen+""+newmoongreen+""+newmoonblue+""+(newmoonjd-Math.floor(newmoonjd)-0.5)+""+(moonset[1]-parsecol(sunset[1]))+"
'; infoarea=document.getElementById("info_area"); infoarea.innerHTML=htmlresults2; //console.log(htmlresults2); } -->

HilalMap

versi 0.3b
HilalMap - Logo

Versi terbaru dari HilalMap bisa dilihat di sini: HilalMap.


HilalMap adalah layanan online yang merupakan penerapan JavaScript untuk penghitungan peta visibilitas hilal atau bulan sabit dalam menentukan awal bulan kalender hijriyah. Layanan ini juga menyajikan informasi posisi bulan dan matahari sebagai dasar Rukyatul Hilal untuk input kota atau lokasi yang diberikan.

Aplikasi ini masih dalam versi beta dan dalam pengembangan. Kode JavaScript yang digunakan melibatkan penghitungan berulang yang cukup banyak. Browser pada komputer dengan CPU yang cukup tua mungkin akan berhenti bekerja di tengah jalan atau terlihat "menunggu" dalam waktu lama.

Silakan tulis masukan dan komentar pada bagian bawah halaman HilalMap ini

 

Peta Visibilitas Hilal

Klik tombol Simpan Gambar untuk membuat versi berkas gambar dari bagan visibilitas di atas.



Kode script utama dari © Peter Hayes 1999-2015. Rujukan penghitungan kriteria keterlihatan hilal dan rumus nilai q untuk membuat peta visibilitas hilal: Yallop, 1997; Odeh, 2006; LAPAN, 2010.


© 2008 - 2025 alhabib | RSS | Blog | Hubungi | Oleh |