Live CEOing Ep 797: Design Review of Geography, Dates, Quantity Features

This content was created by Guy Kawasaki. This content was uploaded by Guy Kawasaki. This is a YouTube video titled "Live CEOing Ep 797: Design Review of Geography, Dates, Quantity Features" recorded on May 2, 2024. It features a technical discussion led by Stephen Wolfram, with contributions from Roger Germundsson, Jose Martin, and other unnamed speakers. The discussion focuses on the design and functionality of date and time features, geographic and astronomical projections, and related computational tools in the Wolfram Language.
Chapters
Okay. Hello, everyone. Welcome to another Wolfram Language Design review. This one is about dates and times and related things. That's not a moment too soon. That from datestring got much faster. So date object of a string is now much faster.
Yeah, from datestring is our endpoint function. But there's all the date functions that take strings get faster. And as that first note says, we added support in tabular for these things. And that's a motivating factor for a number of the improvements is that, you know, if it takes a millisecond to go from a date string, that's a little annoying. But when we have a million strings and we need to convert them, it needs to be sub microsecond.
So. Okay. Conform dates. Okay, so this is along the lines of conform images and so on.
Yes.
I mean, you should write out in this documentation list date one, date two, date.
Okay, yeah, I'll make that change. And this is another thing that, you know, internally for working with collections of dates, we have to do some homogeneity anyway. And so this, this framework works both for automatic cases. I have a bunch of dates. Just make them the same for me. And also for. I have a bunch of dates, I want them all to look like this or I want them to look like this specific date.
What are the possible settings for D type? So.
That basically. Yeah, yeah. So that that section needs to be updated. It's basically consistent with this, the element type used in a tabular column. So the idea is that, you know, for, for generating things like a tabular column, it might be nice to just directly generate it from a list of dates.
You know, somehow we have all these conform functions. Images. I don't know if we have one for GEOP positions, but we might have. Maybe we should, you know, standardize the conform. You know, some kind of conform list or something. Does that make any sense? I mean, I can imagine other conforming type things that we need too. Go ahead. What are you going to say?
Yeah, I was going to say we also have. It's an older function, but common units is a similar thing for quantities. Give me a. Here's a bunch of quantities. Make them uniform.
The only issue. I think it's nice to have a unified thing, but what if there's individual controls that needs to sort of speak.
Dates or speak like calendar type and so on? Yeah, I'm not sure that that is necessarily incompatible with that. I mean, although I agree it's harder to document if you. If we do that.
Yeah, but yeah, I think I think they should be uniform, at least in. In their argument structure and argument handling. But yeah, the.
I mean, also, you know, we don't have conformed times times yet. That's also a thing. I mean, this does that. I mean, we're using data as a generic for date and time anyway, right?
Yeah.
Renaming the default time system to ut. That's not going to have backward compatibility issues, is it?
Nope. Yeah, we. We accept both of them. We're just standardizing the naming convention we use to be UT because it works better for far past dates than smeared utc where UTC didn't actually exist.
Right.
Yeah, it was a wrong choice of name. It became clear when working with eclipses, we needed this time system very far in the past in the future. And it was very weird to have, I don't know, UTC 2000. Yes. In the past.
Fair enough. Okay, which are we using by default for printing? Let's see. If I say data object minus.
That's going to normalize the zeros. But we're using BC and you can.
See why is there no space before the bc? Or maybe I'm just wrong there.
I mean, there's a thin space. This is one thing that we changed after making our previous discussion was that when the BC was the same size and spacing as the other elements, it started to look awkward. Particularly if you include something like a time. You know, a lot of far past dates won't include an hour, but once you start, hard to believe that there.
Are any ones that do.
Yeah.
Except eclipses, perhaps. Yeah, I don't know. I don't really believe in BC being small. It's really pretty much the main event here.
So if you do date string of that, you'll get the. So for like date strings, we want to keep things ASCII as much as possible. Oh, actually that's wrong. Yeah, that. This is prototype version.
Yeah.
So if you do date string of that input instead of of the data object itself.
All of this, it's. It's just going to say bc. Yeah.
Yeah.
But is it too far? So we have been discussing quite a lot whether that space between 68 NBC should be there or not.
I think so.
Okay.
I don't see. I mean, I, you know, when I see dates written, they're written in spaces there.
Yeah. That's consistent with what we saw in other places. So, yeah, I can revert that 68.
Space and BC in big letters.
Okay.
BC is really important. I mean, it's kind of like, you know, 1900 BC is very different time from 1900 ADCE. Whatever.
And now that we are looking at this, Lou has pointed out that the font we have now is too small. So can you for a moment go back to 100% and check whether you are okay with this size in. In terms. Lou believes we are overdoing this.
Well, we don't want it to be taller. The whole aggregated thing doesn't want to be taller than, You know, than the rest of the line. Right. So that's the issue now that's a question for design. I don't think. It's obviously too small. We can maybe iterate that once with design.
Okay, I'll, I'll touch base with Jeremy. Again. One minor thing that you had requested if you do date interval of today. So there used to be a calendar icon there. We removed it because you didn't like it. I just want to make sure this still looks good without an icon there.
Yeah, I think it's okay without an icon.
Okay.
The sub.
Second.
I mean, we going to femtoseconds or something or what are we going.
We currently support up to picoseconds. So if you Open the number 4 in the details below, there's a more comprehensive breakdown. We theoretically can support up to attoseconds in the future.
Right. Why do we care? I mean, that seems very obscure.
It is. I mean, current technology has clocks reaching 10 to minus 18 seconds. I mean, it is the best that can be done.
So there are attosecond. So you're telling me there are attosecond accurate?
Yes, there are some atomic. Some, some modern versions of atomic clocks can, can reach. Really? Really.
But is that connected to the absolute time system or is that time differences and things? Because time differences are going to be 75/ Attoseconds and that's in the unit system.
Yes.
This is, you know, times anchored to global time.
Exactly. Yeah. This is granularity in dates, what we are discussing here.
Right. And I mean, I, I don't see that as a. I mean, am I wrong that is there an atomic clock that's broadcasting, you know, attosecond level stuff?
No, no, no.
What. How far does it get? I mean, I, I would. I have to believe it's not far beyond microseconds.
Well, certainly they reach nanoseconds, but, but certainly not autoseconds and even more.
Okay.
So one thing which I think you. If there's going to be something you have an objection to here, it might be, be these numeric granularities. So we have decisecond Centosecond, millisecond, all the named seconds down to picoseconds. But there are instances where you may want 10 to the minus 5 seconds. We don't have a clear name really.
What are those instances?
So a more common instance of that would be like in typesetting, if you want to show five digits of precision or 60 precision.
Okay, so that's a precision number, basically. So is it consistent with N's precision? So if I say date object of. Can I give an absolute time here or do I need to give.
You can give an absolute time.
What the hell is that? S minus five.
So that, that is our typesetting because we don't have a name for that granularity. Right. It's 10 to the minus 5 seconds.
Well, S minus 5. That's really weird. I mean, why, why do we need to show that by the time we're showing a certain number of decimal digits, doesn't that define the granularity?
It.
It does, but I mean, if you are with 12, it may be difficult to count.
Tough luck. Well, okay, you're naming that picosecond.
Yeah, we know pico saying. But if you do 11, there's no name for that unit of time really. So we could.
Then what I would call it is 10ps colon, if you want to do that. S to the -11 doesn't cut it for me.
I see. Yeah, that's a good idea.
I mean, if we need to do it at all. I would argue that, that you've got the granularity information in that digit count. And I, you know, I just don't think how, how would I compute the sort of date granularity? Is there a function? How do I, how do I get out the date granularity? Is it date value? Is there a date value?
Yeah, date value. And you can say granularity is a string there.
What the heck does that mean?
So this is an instance where the granularity. We don't have a granularity string for 10 to the minus 11 seconds. It's. It's the literal representation.
What the heck is that? What the heck is that? Help. It's an undo problem of some kind. Somebody should report every. Maybe you can capture and report that. Okay. Yep, got it. Yeah, Yeah, I have it. Tell me any other things that you're doing that are. Because I wouldn't have caught this and I kind of need to. I want to.
Yeah, so this and the corresponding support in date string. So if you say D date string and for the format type you say date, string of now, comma 11. Well, not 11 there. So if you were to give a list and say time, comma 11.
Sorry, what. What is the context of that?
You can give minute. Yeah, but if you say. If you give a list as the second argument and say the string time and then comma 11, that will print 11 digits to the right for seconds. These are the only two.
Why do you have to say time, comma 11? I don't understand. If this works, comma 11, why doesn't this work, comma 11?
We could do that.
I mean, I think it has to be consistent.
Yeah, the, the reason that we support it in the list case is that you can give an arbitrary format there. But yeah, we could just have. I mean, there's no ambiguity there.
What's that?
That should give an error message.
SO20 is not supported. Yeah.
Why not?
Well, we are using real numbers with 18 digits, so we decided to leave it at currently at 12. This is what we support.
Okay. Okay, fine. Okay, so what message? What's it going to say? This is too high a precision or something. Too high?
Yeah, yeah, the requested granularity.
Too high is too high.
Needs to be a value between law and blah.
Okay, all right, but I don't know, should. Should we use up the second argument really, for these, you know, for this?
Well, the second argument is already granularity.
No, I understand that, but. Okay, all right, but so for date string, what is the second argument?
The date string is the format. So it's either a string for the single element you want, which might be a date format or a single element or a list of elements. It can be any of these things.
Aren't these granularities all down here? I see, but when we say locale, short, whatever it is. You know what, I'm kind of agreeing with you that putting in just having a naked 11 there, seems like we're using up a big piece of syntax space.
Yeah, well, what we basically did was saying if the final element in the list you specify is an integer, then we can assume you want that many digits to the right in the seconds.
Yeah, okay. All right, fine. I mean, this is a bit obscure because, I mean, in, you know, some of these things, month, Roman numeral and things like that, Those are pure formatting. And then we're mixing that with granularities. Right?
Yeah, I mean, there's some interplay between like the. The date elements and granularities. Right. I mean, the date values, extractable elements, correspond almost one to one with what's in Date string.
Yeah, except that there's things like weak beginning and things like this that aren't in date object and so on.
Yeah.
Why does time comma 11 make any sense? Why is that what makes sense as a way to specify granular stuff?
It's just less the granularity. It's how many digits you want to print. So if you just do time right now, it totally allides any fractional seconds. It just takes the floor. That's what date string has done forever. And there's been no way to specify. I want.
All right, okay.
Fractions of a second.
Are you sure there isn't. Don't we have a granularity option in many.
We have a date granularity option in most in every function that generates date objects.
Okay, so why don't we have a date linearity option in date string?
Generally, we've restricted it to things that generate date objects rather than strings.
Okay.
There is one precedent we were following. For example, if you write DMS string here, comma 2, DMS string, DMS string comma bracket here, comma 2.
I mean, comma 2 inside like that.
Yes. So that will print here is just right at the opposition with some random numbers there.
Okay.
Well, use some reals with digits and you will see how this is controlling. But that's too large for a latitude. Right. So you see, if you write now four, it would use four digits.
I see. I know. It is asking about set precision on a data object. Does it work? Should it work?
It can work on the. The values inside the data object. So we aren't. And hold.
Look, I think this is. Okay. I think this is a slightly corner case and it's okay. And. Dramatically faster. Good. Okay. All right, let's go on here. Quantity Q and known unit Q. What is that? Now testing.
So the second argument is a. So it. You can look at the ref page if you want to, but the second argument is a unit dimension specification or a quantity variable.
Why, oh, why did that take a long time to come back?
I'd look at the page in Docu Tools. It's a little more up to date. Okay, so basically this is useful because for a lot of functions elsewhere in the system, you want to look at an input and say, okay, is this input a time?
Yeah.
Okay, is it a length? Is it a time? So this lets us in a single evaluation, say, you know, okay, is this a quantity of time? Is this a right of acceleration?
That's good.
Yeah. This is very useful to check velocities or. And it Will understand both height and length and distance and all the variants.
Good. Looks nice. Okay. Date distribution. Time distribution. The heck is that. Is that. Is that a function that is representing a distribution of dates?
Correct?
Yes. I would look at descriptive statistics first, and then, you know, we can look at those two models for date and time.
What should I look at here? Examples here?
Yes.
So dates are like temperatures. It's an interval scale. So not everything makes sense. But surprisingly much makes sense. So mean is kind of like a date plus a bunch of date differences. Yes, so that makes sense. Median is like ordering, so that makes sense. Standard deviation is a bunch of differences squared.
Yep. Et cetera.
And so as it turns out, there's only like, very, very few, like moment and factorial moment. That doesn't make sense.
Cool.
And just about everything else makes it. If you open up that status table, you'll. And so this is also driven by tabular, because we needed ways to summarize date and time columns.
Yes.
And weighted data means that it computes the weighted statistics.
So I understand. Good. Good consistency. Case covered.
Mm.
Okay. Date distribution. So what does that mean? Does that mean, like, I can have a Gaussian distribution of dates?
Yes. Yes.
So you have to say how the reels map to the dates, and that's basically what the input does.
Okay. I mean, if I say date distribution, can I run it? Yeah.
Yes.
Okay, so if I say normal distribution, And I say now or today, no.
The parameters still need to be numeric.
But that should work.
No, I will disagree with that.
Why?
Because this is a very special case. So, you know, you can have it maybe for one or two distributions, that. That's gonna work. And for that reason, we have the date distribution. When you have the normal distribution, which is the distribution of the magnitudes, and then you have the unit and then you have the origin in a similar fashion that we have quantity distribution when we have numeric distribution of magnitudes and then the unit. So.
Well, okay, okay, so hold on a second. So. So if I want to say. I don't understand this. Okay, let's take a look here.
So if you take, for example, different gamma distribution, there is no straightforward relation between the parameters and the mean and the standard deviation. And many distributions just have shape parameters and there is no way to put units or dates there to indicate what it is. So normal distribution, it's. It's a special beast because here, you know, the parameters correspond exactly to some statistics that actually are meaningful. But generally, if you want to have any magnitude, you just put a numeric distribution. Numeric parametric distribution.
Let's say 05 there. And I want that to be a four day variance. How do I do that?
So if you do that, if you put days now as a unit, you're going to have a four day standard deviation.
Okay. Okay. And now if I want to do that, that's relative to today. How do I. Is there a base here?
Yes. So the third argument is your date origin.
Okay.
So you can put here date object of.
Yeah.
Well, let's say just now for example. Okay. And so now if I say mean of that. Cool. And if I say variance. Well, this is cool. And.
And it should be consistent with simulating it and computing the descriptive statistics.
Right. So if I say random date, a.
Random variable for the time being, I haven't supported the random date with the distribution yet.
Okay. So random variable variate rather.
Mario. Yes, sorry.
Cool, cool, cool, cool.
So this works.
Hold on. If I do. Let me, let me just try this for a second. If I do this comma500 and then I say date histogram of that, I.
Would suggest not using table but just adding a second argument to random variation because it's going to be very, very slow in table.
Well, it worked just fine.
It does work, but it's a slow.
Okay, that's very nice. That's very nice. Really fits together. It's great.
Yeah. So they are both working within the distribution framework. Hence the random variat is supported. And for the random data, need to add the support there.
Okay, cool. Okay, that's what we just looked at.
Yep.
Yeah. This is interesting for biostatistics. It's clearly going to be relevant. Nice. Okay. Okay. Time distribution. So that's. Why do we need a separate time distribution from date distribution because it's on the.
Just on the time objects and the time object has a. It's, it's a, it's a. It's not fixed in the, in the calendar. Right. So it's a 24 hour interval that we're looking at. And by default the time distribution goes from midnight to midnight. You know, so default default origin at midnight. But you can also shift it. But it's always going to be this kind of truncated distribution over the interval of one day of 24 hours. So that's why it's different.
Why is that? Right? I mean if I just want to represent a disembodied. I see. Then I should really be using just a quantity distribution.
Right? Because if you do time object of 27, you are back into the loop. Between 0 and 24.
Yeah. Okay. Nice. Okay. All right. Should we move on? That's great. I mean.
Yep.
Okay. This is very nice that this all fits together. Very cool. I mean, I hope it's going to fit together with time series and so on properly.
Yeah, I think it already does actually. And it will fit even better in the next generation time series.
So just so I understand, if I have a time series and I say get me the distribution of. I mean it's like a time series histogram.
Yeah, it works today.
Okay, so the date histogram.
Yeah, the date histogram. No, that works. But I mean, if I want a empirical distribution, does that work of, of what? Of a time series.
Well, you have to specify what you want in terms of the values or the dates in a way, because empirical distribution, it's not a model for a serial data, it's a model for unorganized data. So it will just work on the values.
So I get the keys and then I could feed it in to that. I could feed the list of date keys into empirical distribution and then it will work and it will give me a date distribution as well.
That true?
No, I.
We could probably make that work.
Well, it's a suggestion.
Well, so the thing is that you could, so what you can, what you can do is you can use the data distribution with empirical distribution as a numerical empirical distribution as a magnitude distribution. So you can, you can put it as one of the distributions. It could be normal. So parametric or non parametric distribution, like a smooth kernel distribution inside. But I don't have here the non parametric support for dates per se at this point. So. Okay, that might be something to look, you know, in the next step to look at.
Fair enough.
I have the estimation for the parametric distributions at this point.
Okay, onward to astro.
Yes. So the important thing here is the. You probably have. Okay, so the main thing here is a change in both astrographics and geographics of the geometric engine. And so here there are two changes. One is that you see that the lines, these planes, the ecliptic, the horizon, etc. Now they have ticks. This is using the technology of axis object and it works pretty well. And it's very interesting to see the ticks that they have. So this helps in orientation. For example, the blue line you are looking at right now is the equator, the projection outwards of the equator of the earth.
Yes.
And the natural way of adding units there or ticks is sidereal time. So that coordinate there is sidereal time. And Then, for example, the ecliptic, which is in yellow, it has dates. So it's the date of where the sun is. So you move the first slider, the hours, so that we see the sun. Yes. So now you see that May 1st in May. Exactly, exactly. So as the sun moves over during the year, it will change the date. So that explains what the axis is there. So that is going to project the milk way and add it there. And now you see, it's along the fourth line, which is the galactic plane. And the tradition there is to use degrees. So the center of the galaxy, again, you have to move the first slider to see it will be zero. So that's slower because it has to project again and again the galaxy.
All right, so I'm. Now wait a minute. As I change the hours, at some point I will be looking the center of the sky will be in the direction of the center of the galaxy. Is that right?
Not necessarily. So at some point, the plane of the galaxy will cross that point.
The red line is now looking outwards from the out to the outer reaches of the galaxy, so to speak, rather than towards the center.
Exactly. Yep, exactly. That's it all.
Okay.
And so.
Yes, So I mean that galaxies. Oh, I see. This is. Okay, go ahead.
No, I was going to say that, for example, if you see where the blue and the yellow lines cross, those are the equinoxes. So that's the September 21st equinox. And if you move again, you would see on the other side, you will see the March 21 equinox.
Okay, explain this to me. What, what I mean, so the sun is always on the plane of the ecliptic.
Exactly. The yellow line.
Right. The equatorial, the equator line.
That'S a fixed line out in. In. In space.
Yes.
And so the definition of the origin of that line, so where zero hours of right ascension in the blue line or the 21st, is the vernal equinox, which we are not seeing right now because it's on the.
Yeah, I get it, I get it.
Yeah. So it would cross on the other side and that would be the vern equinox. So what we are seeing here you are pointing at is the autumnal equinox.
Why is it obvious that when the plane of the equator crosses the plane of the ecliptic, that that corresponds to the equinox?
It's a definition.
Yeah, but the equinox is also equal time, equal day, night.
Yes. So effectively, when the sun crosses the equator of the Earth, the sun is over the equator of the Earth. So those. Those days are going equally long.
I see, I see, I see, I see. That makes sense. Okay.
It's the crossing of the blue line.
Yeah. And the plane of the galaxy. I mean, we're rotating, what, every 100 million years or something around the center of the galaxy. So it's not quite the same thing as the sun moving. So that's fixed. That is genuinely fixed stars as far as we're concerned.
Exactly. The zero of that red line is the center of the galaxy. And now there is a fourth line which is the most interesting line, is the horizon. And so the ticks on the horizon are cardinal directions. No, it's the circle. The whole circle around.
So that's the horizon. Yes. Okay. Yeah. Right.
And I have a picture just further down which illustrates that if you scroll a little bit. So this is a very nice picture taken from astronomy. Picture of the day, which is the eclipse of a few weeks ago. And you see, that's the whole horizon. And so on the right, we have. How we imitate that very moment. So we also have the horizon. And now we see that this blue thing or grayish thing that we have around is the Earth, actually.
Yes.
And we see the moon, which is covering the sun at the center. And we see here how we are enlarging the moon. Right. The real size of the moon and the sun is much smaller, but in order to make it visible, we make it larger. Okay, so now you see the meaning of this grayish area, which is a new thing in 14.1. So now can we go up again?
Yes, but I have a question. Can our image processing and projection stuff make that picture either by stitching or something else?
Right. So I think we must be able to do it. I don't do it yet, but it would be very nice to have some sort of way of texturing something that looks like the Earth there. But we can do even better, and you will understand it now when we do the. The next.
I mean, this is some kind of anamorphic, whatever they're called. And what are those things called? The cylinder. Projectiony things.
Yes, it's similar. It's a stereographic projection.
Okay. But I mean, this picture makes it clear that it is not completely uninteresting to take an image and do, you know, and treat that image like it's the texture on the surface of the Earth or treat, you know, and then do stereographic projection on it or something.
Right.
Is that right?
Yeah, yeah, exactly. So. So the circle is the. Is the hemisphere above us. The rest Is the hemisphere below us?
Yeah.
And so we just, just have to find an image that can be projected. Yeah, it has to be an image that includes a 360 degree. So it is very special image. But.
Oh, I understand. Right.
But so, so can we go up? We can do better. You will understand.
Now go further down.
Yes, no, no, further up, further up. Let's go back again. So move now the altitude scroller, which is the next. The. The altitude. Yes, exactly. So. So can we get the. So and check off the Milky Way? So we do. Because it's very slow to project the image. So now let's move the altitude.
Yeah.
So you see how that's the Earth and of course, if you go to very low altitude. So when you have more or less in the middle, we are seeing the.
Horizon as a flat horizon.
Exactly. So you can now move the azimuth and you will just be pointing the next one. You will be pointing at a different place of the horizon.
But why is the horizon not showing marked off northwest or something like this?
Because the ticks just flipped to below the horizon. That's something that we have to change. For example, change the elevation now.
Change what?
The elevation. So now we are going upper in space. So the Earth is being pushed down.
Oh, this is really cool. Yeah, I see.
You see even the moon, if you. If we get very far, even the moon starts getting closer to the Earth.
Yes, I understand.
So we could.
If, if I look at this from Jupiter, for example. So I mean, so this picture. I could have a similar picture from the surface of Jupiter.
Yes, yes. I'm not sure it's going to work. But. But yes. So now before we go that we go there, notice how the Earth now would also admit having a texture there of the Earth. We could rotate it. So you see how we would have to interpolate from seeing the whole Earth to seeing a place on the Earth with the stereographic projection you were talking about.
Just, just to my. For fun, how would I do this from Mars? From the. Let's say I'm on Olympus Mons or something.
Okay, so do you see where it sets your position in the first line?
Yes, just.
Just add Mars after. After that. Yeah, so that's that we are observing now from. So now it's red.
Ah, okay. Amazing.
Because that's, that's a color we choose from us.
Yeah, I understand. So if I go. Is that true that Altair. Wait a minute. What's the north star of Mars?
Well, here we are using the, the horizon frame. So that's the star that you have above from the place you are looking at.
I see.
So for example, you see the last line of the controllers a click. Or equatorial. So now we have lines that are pointing along the equators or you can take to ecliptic or galactic. So these are the various lines of the coordinate frames.
Yes. Soon it will be time for us to do a bunch of webinars about this stuff. So we actually, because people will find this really useful.
Yeah, I think having all these sticks now, it helps a lot for orientation and of course, having the planet in the proper place. It also helps a lot understanding what you're doing.
Right.
And yes, having the proper texture there would be fantastic.
Really cool. Okay. All right. Onward.
Yeah. So those are two new things we can do because we have a new engine for projections in both astographics and geogics. And it's very. It's a lot more careful with big things. Right. So handling this big object that we have there, we couldn't do it before.
So you mean Antarctica is going to work better now?
Exactly. And hemispheres and things like that.
Okay, so let's say. I say geographics of geoprojection.
Well, I have examples below if you want to.
Oh, okay, fine.
But before we go to geographics, let's discuss a couple of things here. One is that we need a way of. Jeff keeps complaining that now the Earth is always in the middle, so he wants a way of removing the Earth. And we are suggesting this show nearby objects. Of course, it cannot say Earth because it could be Mars if you are observing from Mars. So what do you think of these show nearby object faults?
Well, I mean, is it a string option, really like that?
Geostalion has a bunch of styling parameters, so this is experimental, it's not set in a stone. And I'm not sure having the show in front of all of them makes sense, but we have things like show constellations or not show. I see, yeah, this sort of thing.
What do you mean by nearby object?
It means that we are observer observing from a place that has one of these bodies very close. It could be the Earth if we are observing from the surface of the Earth.
Okay. But even if we were from, you know, the ISS or something, there would still be a nearby object.
Exactly. So that's the example I have further down. For example, if we observe from the solar system body center, the sun is very close. And so the sun looks huge deformed in the mobile projection. But that's the sun when we are observing from the solar system Body center.
Right.
And so because it's going to cover a lot of map, it would be nice to be able to remove only that object. We don't want to remove all the objects. Right. Like all the planets or all the solar system bodies. Only the nearest.
Well, I mean, basically it's. Whatever object isn't shown essentially as just a point or disk or something.
Exactly, exactly. So internally it will work with some sort of threshold of angular size.
Yes.
Everything that is above, I don't know, 30 degrees or something like that or even less will not be shown.
Nearby objects. Well, it's not terrible. I mean, I, I don't have an obvious improvement. Okay, let's see. Yeah, I don't have an obvious improvement.
Okay, we'll go with that for a moment.
By default. It's true.
It's true. Exactly. Because it's there. We want to be able to show it's there right now with respect to data. So now we have the ability, and this is going to be helpful for cloud to use lower approximation data so that we don't have to rely on these large files that we download from NASA. So currently it's an internal option.
Sorry, how far off is it? There's the low precision thing.
How, how far, how far?
How, how wrong is the low precision ephemeris?
Oh, it's not very bad. I have an example below for the moon, which is one of the most complicated cases.
Yeah.
And so for, so that's, that's declination. I was referring to the, to the curve before. Okay, so that's an error. So those are years. So 10,000 years either side. And that's an error in degrees. So the sun, sorry, the moon is half a degree in size. So that's about the size of the moon in 10,000 years.
Okay, so you'll have the eclipse wrong in 10,000 years.
Exactly.
Right.
And the position on the earth much earlier.
Why? Because the right ascension goes haywire.
Because where, where the path of totality falls on the Earth is very critical. It's very dependent on, on tiny changes of angle.
All right, so we could probably describe high and low precision in terms of eclipse calculation. In other words, just to give people a sense of what they're signing up for. I mean, in other words, for something that is, you know, where should I point my telescope today? The low precision ephemeris is going to be just fine.
Exactly. Of to do one of these maps like the one we were just looking at. That's going to totally fine.
Right.
But, but an occultation or something like that.
Well, so, so hold on a sec. I mean, presumably if we see that somebody is going 10,000 years in the future, we can say you've got to use the high precision ephemeris. Why don't we have an automatic.
Yep. Well, I, I was going to ask what. How do we allow the user to control one or the other? For example, with. With an option which I am suggesting to call the ASTRO data source or ASTRO families.
I wouldn't do that. I would just call. I mean that would be like. What's the tile server in Geo called? Geo. What is that called?
GeoServer.
Oh, yeah, yeah. Right. Let's see.
I mean this could be used for example to point to another file that the user has downloaded from NASA or something like that.
Yeah, I understand. Well, I mean we could be much more ephemeris source or something. It's kind of redundant to say ephemeris model. I don't like astrodata sources too general. I mean it could be anything. And these ephemera, these have to be in a very specific format.
Yes, yes. It's basically either tables in a very specific format or collections of orbital elements of very specific type of.
I'd like to. I mean, if we call it ephemeris and then another word, what should the other word be?
Source could be good.
I don't really like source because that, that suggests that it's going to be NASA. For example.
I.
Let's see. Do we have a model? Go ahead.
No, I was going to say data, but it looks like a function rather than an option.
Yeah, yeah. Well, I mean, we could just have a method option.
Yes, that's what I write at the end of the first line.
Okay.
We could put it in method. It sounds a bit of an abuse, but it could be.
Well, the method, you know, de. Whatever it is, is a method. But now I think what we should do is a performance goal.
Well, honestly, this is not much faster. The. The LAO precision method is based on orbital elements and it requires quite a lot of computation. The NASA data is fully spelled out in terms of Chebyshev polynomials and it's very fast.
But why not? The performance goal would be memory or.
Oh, I see what you mean.
Because that's what the issue is. It's size versus. I mean it's a performance goal arrow. Quality versus size, isn't it? As opposed to quality versus speed.
Exactly. Yep.
So I think that's what we should do. And then what we should do is automatic. Should be. I mean, once You've downloaded the, the high resolution ones then. See, that's another issue. How do you specify that you want to download them? I mean, if you know you're going to be doing a ton of these computations and you don't care about speed, the size, why not download everything? What is the mechanism that we have for downloading data caches? Pre. Preload. Right.
Entity Prefetch.
Yeah.
But that's for entity.
So.
Here, by default, the files are being downloaded and being placed permanently in one of the users folders.
Yes, I understand. I'm asking if I want to say, hey, look, I know I'm going to be doing a ton of ephemeris calculations. I might as well be using trebuchet polynomials. Let's, you know, let's bite the bullet and just, I'm going to get a cup of coffee and I'm going to download all this stuff. How do you do it?
Sorry, I still don't understand the question. In Astro, that's a default. You don't have to do anything. It's. It's precisely the other way. You have to prevent it.
I understand, but let's say you did prevent it by default. You know, if you make one query, you don't want to be downloading all that stuff. I mean, arguably we could start downloading in the background. You make one query, it goes, that's of current time, it goes low precision, using orbital elements, and then it starts downloading in the background.
Well, it's not a single file, it's more like a hundred. And so it will download the file that need. That's needed.
No, I get it, I get it, I get it. But I mean, I'm saying the initial query, if it's within the time bounds where this small ephemeris will work, just use that. Does that make sense?
But risk precision. So I think by default it should still try to download the files.
I see, so you're saying that we should only be able to set performance goal errors. I don't like that. I don't like that. Because if you want to, if you're just doing a consumer query, know, tourist query, and the thing is grinding and downloading files for 10 minutes before it does anything, that's really kind of bad. And nobody's going to know to set performance goal. I mean, unless maybe the, the progress monitor could give you something that says, don't bother to download this. I only need low precision.
I see. Mm, I see. So perhaps it can be, I mean, if, if you're plotting a very Large scale map like the one we had before. We don't need the whole data.
Right. And we certainly don't need to download data for the Pluto ephemeris just because we're going to put Pluto on our map.
Right, I, I see what you mean.
Okay, so I think there's multiple branches here. One is if it is downloading the big thing, it should say in the progress monitor, if you don't want the big thing, just press here and it will just use the small thing. Second thing is if you're asking for something 20,000 years in the future or whatever, it's got to have the high precision thing. So tough luck. Well, maybe. No, not anything. No, I mean, if you're looking for something, I mean, I think we have to use heuristic to decide what, you know. And even in the cloud where we, where we know we can't use the high precision thing, at least we should give a warning that says this is, you know, using low precision. You know, if you want to know whether the, you know, the dinosaurs will have seen this, it may not, you know, on Wednesday, it may not be able to tell you that.
Right, so. So what we are doing currently in the Cloud is using 150 years of very good of high precision. So the file is there permanently from 1900 to 2050. Yeah.
Okay, fine.
And then outside that, we will use this other data.
That sounds good to me. I mean, but maybe we should put a producer warning saying, you know, using, you know, using slightly lower precision results. Okay, so wait a minute, so where are we leaving this? We've got a performance goal, arrow size that you could set, but probably no user is ever going to know to set it. A performance called size, and another one, precision. I think we shouldn't probably use quality, just precision. Okay, and then. All right, so what. But what's the default behavior? The default behavior will look at what function they're evaluating, I guess, and see whether it thinks you need high precision.
Right.
Okay, well, we should try it.
Okay, so something else we have added is that there were several domains for which astroposition didn't compute because it didn't have data from NASA. Now it falls back to WolframAlpha always. And if WolframAlpha has data for strange comments or things like that, it will work.
Good.
Okay, now three things that are not necessarily for 14.1, but I just wanted to quickly ask your opinion. We have this function which has been already developed and it's a function that is working underneath to do these low precision approximations. And it's orbital elements and it works already quite well. So you can ask for the orbital elements of anybody in any planet or moon around the planet and it will give you all these results.
Right. These are things that are being computed from an ephemeris, presumably.
Yes, yes, yes, from the vsop. I mean we can compute it from the NASA data. So these are the so called instantaneous orbital elements.
Yep.
Which is you fit an orbit to, to. To the tabulated positions and then you report this value. So every time you evaluate this it's a slightly different.
Right. But so eccentricity, you know, I say what's the eccentricity of the order of Mercury? Our entity value system will give me a result. Right. But this will give me a much more accurate current result. Is that correct?
Exactly. Yep. This depends on time. So indeed Wolfram Alpha has tables of fixed values of, of these things.
Yeah.
Which were taken at some point. So this is real time.
Right. So yeah, we, not we want this function. Why wouldn't we have it?
So I mean I, I was planning to have this together with the whole framework of orbits which we don't have yet. But this is a piece of functionality which sits on its own and it's. Quite right.
What does that mean? That's the moon around the Earth.
Exactly. So each object has a default center, but you can compute the orbital elements of the moon around the sun and then of course they are going to look like values for the Earth.
Well, how can it be accurate? Isn't this representing an elliptical orbit?
It's representing, it's, it's, this is what I was saying before. It's fitting an elliptic orbit to, to data around the date you specify.
I see. And how does it tell me how far that will work? I mean if I go out to a lunar month, it's going to be absolutely hopeless.
Exactly. So this is going to change a lot more than the previous values because it's not a real orbit.
Yes, I understand, but does it give me a sense of how accurate, how far the elliptic approximation is going to be accurate for.
Oh, I see what you mean. No, there is no parameter, at least right now that tells you a notion of how stable this orbit is.
Even.
Though you presumably know that because you just did the fit.
Yes, it probably there is some way of computing a notion of that, but no, I don't have it right now.
What will we call this function? Is it orbital elements? Orbital elements data. What do we think we'll call it.
I think orbital elements or astro Orbital elements to make it An Astro member.
I can't imagine what other orbital elements that would be.
Okay. It doesn't sound like chemistry related.
Oh, gosh. All right. Okay, okay, okay, okay. Fair point. I mean the other thing, when we have orbits, I don't know what that will look like. You know, is there going to be an orbit data? How is it going to work? What are we going to do?
I was thinking of having an Astro orbit object that basically represents the whole orbit and it has. It knows.
I see. It's been fed orbital elements and then you can query the Astro orbit.
Right, Exactly. So in a sense, a set of orbital elements defines an elliptical orbit, assuming they are fixed in time.
Yes, I understand.
The Astrobit will be more general. It will be something that receives dates and returns astroposition. So Astro write set is another function that is almost done. We got stuck last time. There is a reference page because we didn't agree how to represent the results. So this is a function that reports the dates of rising and setting of any object observing from anywhere. And the problem here was that it's not clear how to represent both together risings and settings. You didn't like this proposal? I had, but we didn't find a way of doing something better than this, the right way of doing this.
Would it make sense to return in an association or does it just get.
Too weird with little, little associations that say set, arrow, whatever, rise arrow, whatever. Right.
But we want multiple events.
I think the point is there's multiple little tiny associations.
Yeah.
Okay, but clearly these are alternating.
Yes.
What other things do we have like this? I mean, we have. Somehow I'm thinking, oh, I mean, this is like a categorical event series. How about Roger Gosher, Any comments on that? I mean, in other words, we could return this as an event series.
Yeah.
And I think in the future we'll go all out with event series and have them be events where you can store a bunch of other properties that you want around the event. You know, like if that's a server event, you, you look at log files for a server. They store a whole slew of things around the event. The call event and stuff.
And well, probably an event series is what we want to do here, I think. So that'll be the, the least inconsistent. Or alternatively we could return, I mean a thing. You could feed to an event series. Date arrow, set date arrow, rise. And then you could wrap event series around that and have it work. Right.
And also it would be fine in tabular too. These, these discrete events in, in, in a tabular Object is really nice.
And.
We'Ll be able to inter. Interoperate, embed in.
Okay, so I think the basic answer is, Jose, that a list with date, arrow, set or rise seems probably. Okay, I see.
Okay, I like that.
With the expectation that it can be turned into an event series. But now can you ask it for specifically one thing or the other, the rise of the set?
Not right now, but I mean, I can imagine we can add another argument.
Yeah, it's got an awful lot of arguments. All right. We probably need a slightly more detailed review of this.
Okay, so the last one is something that appears frequently. We have added the function to report New moon, full moon, etc. And there are many discussions in. What you need is the solstices and equinoxes.
There are weird enough names. Why don't we just use them? Solstice, equinox. Go ahead.
The four of them, like vernal equinox or solstice would take two possibilities.
What would the actual names be?
Summer and winter solstice or vernal and autumn equinox or spring and autumn equinox.
Okay. And then it just is how do you get the 17 from now type thing.
Right. Or from a given date.
Right. But that presumably New Moon from, you know.
Do you get a date?
Yeah, I think the same thing can happen with, with these equinoxes. The only question is, is it a single function? I mean, my only question would be, presumably these things exist for other planets as well.
Yes, they do.
So those things, unlike New Moon, which is like, well, which moon are you talking about? Type thing, you know, but the notion of a vernal versus autumnal equinox is not going to be the same for other planets. Correct.
The definition, because this is, this is defined in terms of longitude of the sun. I mean, the definition extends. The name will sound weird. Yes. Because what's winter in Mars?
Right. So the question is whether we want to put the vernal and autumnal in the name of the function or somehow in the argument.
I guess we can still say, well, the winter in the hemisphere that is farther away from the sun and things like that.
What about Uranus, which is tipped upside down or something because it doesn't have a surface either, which doesn't help. Well, I mean, mostly people are going to care about the Earth, so probably, you know, we can, I would say preliminarily vernal on autumnal equinox. Vernal, yes. Rather than equinox of vernal, for example, it's more defensive to name it vernal equinox. All right. And gonna have a quick look here. Go ahead. Sorry.
Yes, the names I was thinking of spring, Spring, summer, vernal and autumnal.
So it should be sport tnal. Yeah, that's what people call it. Peral, autumnal, equinox.
Yes. Okay. Okay. Rather than spring and autumn.
Well, I mean, maybe we should go modern rather than 19th century.
Right. Because the, the solstices are going to be summer solstice and winter solstice.
Okay. But let me remind you that in American it's fall, not autumn.
Okay.
And I've never heard anybody call it the fall equinox. That's a detail we're going to have to look into this. This is a Jeff thing or whatever. I don't know.
Okay. Okay. So in geo. So this is an example again of the new engine, which you can now rotate the earth and it will not make.
That's nice and fast. Okay.
Yeah. And it will not make the arrows cutting the edges on the sides that we were doing before.
Can I. Where's the geocenter? Oh, that's that long. Okay.
Exactly. So you can move. Cut it as well.
Oh, look at Antarctica. It has no seam. Has it not had a seam before?
A what?
A seam. Didn't Antarctica have a seam from its coordinate singularity?
Oh, I think it still has. It's just that it's covered by the grid line.
Oh.
Remove the geogrid lines. Let's do geogrid lines. Goes to none.
Oh, dear. Oh, dear.
I think somebody's gonna, somebody's gonna be.
You know, have a ship and they're going to think, oh, we can get much closer to the South Pole by going into that little channel.
So, so that's not the fault of the engine. The, the, the data has that. If, if we remove it from the data, the engine would be. Still be able to write this, to plot this properly.
Yeah, but how do we remove it from the data? It's a coordinate singularity, isn't it?
Well, the problem is that if we remove it from the data, probably WolframAlpha will not plot it correctly because it's using the older methods. But so these are very hard cases that we were getting wrong before because you see how Antarctica is going around the whole Earth.
Yes.
So these very large situations and very deformed situations are now properly handled.
Wow.
And so that's the last one is the mnemonic projection.
Yep.
Yeah. So this is the sort of thing which. Yeah. For vector cases that were not handled.
Properly for how is this. I mean, is this new math or new software engineering or what?
This is a new algorithm to handle primitives. So it's doing. The key idea is doing clipping on the sphere. So before I was only able to do clipping on the plane and so many of the spherical operations were not correct. By doing clipping on the sphere, it helps a lot.
Well, I've seen these, right? These are cool.
Yes, yes. So I just wanted to mention, because we hadn't discussed this, that the next two are very interestingly going to go through Spain, both in August. So the, the weather conditions are going to be properly quite nice.
So the first one, 20, 27.
Okay, exactly. The first one. The. The one on the north that ends in Spain. So it's going to be very late, around 8:30pm, huh. I'm very low on with respect to the horizon, so I have an Astro map below. And so now you see, now we can always plot the ground, which is very good for orientation.
That's cool.
And These squares are 5 degrees. So the eclipse is going to happen at 80 degrees or so.
All right, well, we should start booking the Airbnb or something for.
And the other one is going to be even better. I'm very long, like six minutes.
Wow.
In 27, I'm much higher in the sky.
Very cool.
I think the maximum is in Luxor in Egypt and it's going to be like six and a half minutes there. Really long.
All right, I better go to something else here. But this is really cool. Is there anything else that we need to look at?
No, we're just working on adding more. More formats. That's it.
It's all great. I mean, this is really cool that this is actually solved. This is really nice. That was a nasty glitch before.
Yep.
All right, very good. Thanks and okay, see y' all soon.
More from Guy

Cheryl Strauss Einhorn | The Human Edge: Smarter Decisions in the Age of AI | Talks at Google

Rachel Glennerster | Innovation and the Center for Global Development | Talks at Google

Rebecca Winthrop | Rethinking the Purpose of Education in the Age of AI | Talks at Google

Dr. Robert Wachter | A Giant Leap: How AI Is Transforming Healthcare... | Talks at Google






