Coder Social home page Coder Social logo

Comments (9)

timotejroiko avatar timotejroiko commented on May 31, 2024 1

@Hrsikesa108 it seems like you have inverted latitude and longitude, the geopos array in the rise_trans() function should be longitude first, latitude second.

Also, you can use the jdut1_to_utc() function to convert from julian day (jdut) to calendar date.

3 moon degrees equals roughly 6 hours difference, check for conversion between UTC and local time for your timezone.

const now = new Date();

const jd = utc_to_jd(
      now.getUTCFullYear(),
      now.getUTCMonth() + 1, // months in javascript Date start at 0
      now.getUTCDate(),
      now.getUTCHours(),
      now.getUTCMinutes(),
      now.getUTCSeconds() + now.getUTCMilliseconds() / 1000,
      1 // gregorian calendar flag
);

const rise = rise_trans(
      jd.data[1], // get jd_ut
      0, // Sun
      null,
      2, // flag.SWIEPH,
      1, // For rising 
      [79.51021061378489, 18.751372110577833, 170], // longitude first, latitude second
      0,
      0
);

const utc = jdut1_to_utc(
      rise.data,
      1 // gregorian calendar flag
);

const local = utc_time_zone(
      utc.year,
      utc.month,
      utc.day,
      utc.hour,
      utc.minute,
      utc.second,
      -5.5 // time zone of -05:30
);

from sweph.

timotejroiko avatar timotejroiko commented on May 31, 2024 1

@Hrsikesa108

I'm not sure i understand what your issue is. As i do not know your location or your time zone, i cannot see what is correct and what is incorrect from your code.

The last parameter of the function utc_time_zone has to be your correct time zone in decimal format, for example 15 minutes equals 0.25 in decimal, 30 minutes equals 0.5 in decimal, and the sign is negative for east of GMT and positive for west of GMT.

If your time zone is GMT-6 (6 hours less than GMT, ie New York), the parameter should be 6, if your timezone is GMT+5:30 (5:30 hours more than GMT, ie India) then the parameter should be -5.5.

Other than that i cannot help you without further information, like which values are incorrect and what values were you expecting to see.

from sweph.

timotejroiko avatar timotejroiko commented on May 31, 2024 1

Yes, all swisseph calculations are always done in UTC.

from sweph.

timotejroiko avatar timotejroiko commented on May 31, 2024 1

@Hrsikesa108

The function rise_trans always looks for the next event starting from the input date and time. So for tomorrow's sunrise, any time today will work as long as its after today's sunrise. So it is safe to use the JavaScript current time new Date().

The code i showed you before in #12 (comment) should give you exactly the result you want.

Start with the current time, use Javascript's Date methods to get the UTC parts, calculate the julian day, calculate rise trans, convert sunrise julian day back to calendar date, then convert the date to your timezone.

from sweph.

timotejroiko avatar timotejroiko commented on May 31, 2024

Hello, could you describe all the steps you took for the entire process? In my tests everything is working correctly.

Also, are you using the latest version or the GPL version? When I run rise_trans() with the exact same parameters you posted, I get 2460219.434819401 and not 2460218.928608603.

from sweph.

Hrsikesa108 avatar Hrsikesa108 commented on May 31, 2024

Hi Timotejroiko ,

i am trying to calculate sun rise following below steps
i got sun rise around 9:37 am
but sun rise here in my locality is around 6.05 am
when i used to convert milliseconds to time using native new Date(milliseconds) of the output it
Screenshot 2024-04-13 180053

const {rise_trans} = sweph const rise = rise_trans( 2460414.072327234, 0, // Planet sun null, 2, // flag.SWIEPH, 1, // For rising [18.751372110577833, 79.51021061378489, 170], 0, 0, ) console.log("rise==>",rise) function millisecondsToTime(milliseconds) { const hours = Math.floor(milliseconds / (1000 * 60 * 60)); const minutes = Math.floor((milliseconds % (1000 * 60 * 60)) / (1000 * 60)); const seconds = Math.floor((milliseconds % (1000 * 60)) / 1000); return ${hours}:${minutes}:${seconds}`;
}

const milliseconds = (rise.data - 2460414.072327234) * 86400 * 1000; // Convert Julian date to milliseconds
// console.log("millisecons", milliseconds)
const utcDate = new Date(milliseconds);
const time = millisecondsToTime(milliseconds);
console.log('time===>',time);`

but im getting wrong output im confused lost in understanding properly

please can you help me guide me on this ?

also when i try to get moon longitude it is giving me 3 deg 20 min extra than the current moon longitude in my place, i have checked with jHora windows app
please can you help me on this
Regards,
Aravind

from sweph.

Hrsikesa108 avatar Hrsikesa108 commented on May 31, 2024

Hi sir
one doubt i have
i am using below code which you have suggested but found utc_time_zone is not properly converting current time
`

const getPanchanga = (now = new Date()) => {
console.log('timeNow', now)
const jd = utc_to_jd(now.getUTCFullYear(),
now.getUTCMonth() + 1, // months in javascript Date start at 0
now.getUTCDate(), now.getUTCHours(), now.getUTCMinutes(), now.getUTCSeconds() + now.getUTCMilliseconds() / 1000, 1)
console.log('jd.data[1]==>', jd.data[1])

const rise = rise_trans(jd.data[1], SE_SUN, null, 2, // flag.SWIEPH
    1,
    [79.51021061378489, 18.751372110577833, 200],
    0, 0)

console.log('sweph.constants==>', rise)
const utc = jdut1_to_utc(rise.data, 1)  // gregorian calendar flag 1
console.log("utc==>", utc)
const local = utc_time_zone(utc.year, utc.month, utc.day, utc.hour, utc.minute, utc.second, -5.5)// time zone of -05:30
console.log('localTime', local)
const data = planets(jd.data[1])
// console.log('data==>', data)
const sunLong = data.sun.data[0]
const moonLong = data.moon.data[0]
console.log("sunLong==>", sunLong,"moonLong==>", moonLong)
const sign = zodiacSign(moonLong)

}
getPanchanga()
`

from use utc_time_zone function when given the timezone -5.5 i am getting below output which is showing 1 day extra
timeNow 2024-04-28T10:37:51.553Z jd.data[1]==> 2460428.94295912 sweph.constants==> { flag: 0, error: '', data: 2460429.5106294174 } utc==> { year: 2024, month: 4, day: 29, hour: 0, minute: 15, second: 18.266554176807404 } localTime { year: 2024, month: 4, day: 29, hour: 5, minute: 45, second: 18.266554176807404 }

when i use 1 without giving the time zone then it is giving the time of
timeNow 2024-04-28T10:42:55.702Z jd.data[1]==> 2460428.9464793634 sweph.constants==> { flag: 0, error: '', data: 2460429.5106294174 } utc==> { year: 2024, month: 4, day: 29, hour: 0, minute: 15, second: 18.266554176807404 } localTime { year: 2024, month: 4, day: 28, hour: 23, minute: 15, second: 18.266554176807404 }

means 5hr.30 min extra from my current time
can you please guide me
Thanks

from sweph.

Hrsikesa108 avatar Hrsikesa108 commented on May 31, 2024

sir one small doubt , please dont feel bad, every time we should pass current time in utc format only right for all calculations?
i am from india karimnagar, and time zone is GMT + 5.30 hrs

from sweph.

Hrsikesa108 avatar Hrsikesa108 commented on May 31, 2024

Hi sir,
If I want to know tomorrow's sunrise which date and time do I need to pass ?
tomorrow's date past mid night 12 or
tomorrow's date + GMT + 5.30

from sweph.

Related Issues (18)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.