function CzytajSatelite() { document.geo.PozycOrbit.value=formatuj(document.Satelity.Nazwa.value,5); } // !!!!!!!!!!!!!!!! Czytaj Miasto i Szer., Dlug. Geo. !!!!!!!!!!!!!!!!!! function CzytajMiasto() { var Lat,Lon,MyVal var ValArray=new Array(); MyVal=document.Miasto.Lokalizacja.value; if (MyVal == null) alert("!!! Nie wczytuje Miast. Zmień przeglądarkę na nowszą !!!"); if (MyVal !== null) { // Wyciagnij dlug. i szer. geogr. ValArray=MyVal.split(","); Lat=ValArray[0]; // Pierwszy subarray zawiera Lat Lon=ValArray[1]; // Drugi subarray zawiera Lon document.geo.LAT.value=Lat; // czytaj szer.geo. miejsca document.geo.LON.value=Lon; // czytaj dlug.geo. miejsca } } // !!!!!!!!!!!!!!!!!!!!!!!!!! Obliczenia !!!!!!!!!!!!!!!!!!!!!!!!!!!! function ut(h,m,z) { return (h-z+m/60); } function jd(y,m,d,u) { return (367*y)-Math.floor((7/4)*(Math.floor((m+9)/12)+y))+Math.floor(275*m/9)+d-730531.5+(u/24) } function azimuth(lg,la,ye,mo,da,ho,mi,zo) { with (Math) { var uu=ut(ho,mi,zo); var jj=jd(ye,mo,da,uu); var T=jj/36525; var k=PI/180.0; var M=357.5291+35999.0503*T-0.0001559*T*T-0.00000045*T*T*T M=M % 360 var Lo=280.46645+36000.76983*T+0.0003032*T*T Lo=Lo % 360 var DL=(1.9146-0.004817*T-0.000014*T*T)*sin(k*M)+(0.019993-0.000101*T)*sin(k*2*M)+0.00029*sin(k*3*M) var L=Lo+DL var eps=23.43999-0.013*T var delta=(1/k)*asin(sin(L*k)*sin(eps*k)) var RA=(1/k)*atan2(cos(eps*k)*sin(L*k),cos(L*k)) RA=(RA+360) % 360 var GMST=280.46061837+360.98564736629*jj+0.000387933*T*T-T*T*T/38710000 GMST=(GMST+360) % 360 var LMST=GMST+lg var H=LMST-RA var azm=(1/k)*atan2(-sin(H*k),cos(la*k)*tan(delta*k)-sin(la*k)*cos(H*k)) azm=(azm+360) % 360 return azm } } function altitude(lg,la,ye,mo,da,ho,mi,zo) { with (Math) { var uu=ut(ho,mi,zo); var jj=jd(ye,mo,da,uu); var T=jj/36525; var k=PI/180.0; var M=357.5291+35999.0503*T-0.0001559*T*T-0.00000045*T*T*T M=M % 360 var Lo=280.46645+36000.76983*T+0.0003032*T*T Lo=Lo % 360 var DL=(1.9146-0.004817*T-0.000014*T*T)*sin(k*M)+(0.019993-0.000101*T)*sin(k*2*M)+0.00029*sin(k*3*M) L=Lo+DL var eps=23.43999-0.013*T var delta=(1/k)*asin(sin(L*k)*sin(eps*k)) var RA=(1/k)*atan2(cos(eps*k)*sin(L*k),cos(L*k)) RA=(RA+360) % 360 var GMST=280.46061837+360.98564736629*jj+0.000387933*T*T-T*T*T/38710000 GMST=(GMST+360) % 360 var LMST=GMST+lg var H=LMST-RA var alt=(1/k)*asin(sin(la*k)*sin(delta*k)+cos(la*k)*cos(delta*k)*cos(H*k)) // document.sunform.alt.value=alt; return alt; } } function frm_0(wart) { // dodaj zero z przodu, jezeli brak if (wart < 10) wart = "0" + wart; return wart; } function settoday() { today=new Date() thisyear=today.getYear() if (thisyear<=1900) thisyear=thisyear+1900 // for Netscape on Mac thismonth=today.getMonth()+1 thisday=today.getDate() thishour=today.getHours() thisminute=today.getMinutes() offset=today.getTimezoneOffset() if (offset>=1380) offset=offset-1440 // for Netscape on Mac thiszone=-offset/60 document.sunform.year.value=thisyear; document.sunform.month.value=frm_0(thismonth); document.sunform.day.value=frm_0(thisday); // document.sunform.min.value=frm_0(thisminute); document.sunform.zone.value=thiszone; } // ------------------- function Rad(x) { var ra ra=x*Math.PI/180; return(ra) } // ------------------- function Deg(x) { var rad rad=x*180/Math.PI; return(rad) } // ------------------- function formatuj(co, p_ile) // *** Zaokraglaj do "p_ile" pozycji *** { var invalid = "**************************"; var nines = "999999999999999999999999"; var strin = "" + co; var fltin = parseFloat(strin); if (strin.length <= p_ile) return strin; if (strin.indexOf("e") != -1 || fltin > parseFloat(nines.substring(0, p_ile)+".4")) return invalid.substring(0, pile); var rounded = "" + (fltin + (fltin - parseFloat(strin.substring(0, p_ile)))); return rounded.substring(0, p_ile); } // -------------------------- // *** Elewacja Satelity function Elewacja_L(SatLon,SiteLat,SiteLon) { Lon_Dif=Rad(SiteLon-SatLon); Lat_Site=Rad(SiteLat); r1=1+35786/6378.16; v1=r1*Math.cos(Lat_Site)*Math.cos(Lon_Dif)-1; v2=r1*Math.sqrt(1-Math.cos(Lat_Site)*Math.cos(Lat_Site)*Math.cos(Lon_Dif)*Math.cos(Lon_Dif)); Site_Elev=Deg(Math.atan(v1/v2)); if (Site_Elev<30) Site_Elev_Ref=(Site_Elev+Math.sqrt(Site_Elev*Site_Elev+4.132))/2 else Site_Elev_Ref=Site_Elev; if (Site_Elev_Ref<1) Site_Elev_Ref=0; return Site_Elev_Ref; } // ******************************************* function sunpos() { // var lg=1.0*document.sunform.longitude.value; // var lgmi=1.0*document.sunform.longmin.value; // var la=1.0*document.sunform.latitude.value; // var lami=1.0*document.sunform.latmin.value; var ye=1.0*document.sunform.year.value; var mo=1.0*document.sunform.month.value; var da=1.0*document.sunform.day.value; // var ho=1.0*document.sunform.hour.value; // var mi=1.0*document.sunform.min.value; var zo=1.0*document.sunform.zone.value; // var ewv=document.sunform.ew.options[document.sunform.ew.selectedIndex].value; // var nsv=document.sunform.ns.options[document.sunform.ns.selectedIndex].value; var k=Math.PI/180.0; var la=1.0*document.geo.LAT.value; // szer.geo. miejsca var lg=1.0*document.geo.LON.value; // dlug.geo. miejsca SatLon=-document.geo.PozycOrbit.value // pozycja Satelity na Orbicie HB = 13E // lg=lg+lgmi/60 // la=la+lami/60 lgo=lg lao=la aa=180.0 // if (ewv=="West") { lg=-1.0*lg } // if (nsv=="South") { la=-1.0*la } // var alt=altitude(lg,la,ye,mo,da,ho,mi,zo) // var azm=azimuth(lg,la,ye,mo,da,ho,mi,zo) h1=0 m=0 alt1=altitude(lg,la,ye,mo,da,h1,m,zo) azm1=azimuth(lg,la,ye,mo,da,h1,m,zo) // s=-0.8333 s=0; // find midday interval for (var h=0; h<24; h++){ h2=h azm2=azimuth(lg,la,ye,mo,da,h2,m,zo) if ((azm1<=180)&&(azm2>=180)){ ha1=h1 ha2=h2 } h1=h2 azm1=azm2 } //** kiedy srodek dnia , uwzgledniajac "time zone" *** mino=1.0; for (h=ha1; h s){ dfr=Math.abs(s-altr) if (dfr<=minr) { minr=dfr hr=h mr=m } } }} } document.sunform.czas_wsHo.value=100*hr+mr; // *** --------- Obliczenie zachodu slonca --------- *** hs=0 ms=0 mins=0.2; for (h=hno+3; h= 60*hno+mno) { alts=altitude(lg,la,ye,mo,da,h,m,zo) if (altnoon > s){ dfs=Math.abs(s-alts) if (dfs<=mins) { mins=dfs hs=h ms=m } } }} } document.sunform.czas_zaHo.value=100*hs+ms; document.Powtorka.Disp.value=1; } // Pzdr.J.P. , wer.30.08.2005