Skip to content

Conversation

@no-lex
Copy link
Contributor

@no-lex no-lex commented Dec 25, 2024

Improves the Wind screen in the following ways:

  • Reports the general direction and distance of the winds aloft data reporting location
    • The method getGeneralDirectionFrom has been modified to only print the relevant direction, so it can be used here as well
  • Reports the general direction and distance of the Skew-T diagram to be rendered
  • Reports the time until expiration of the winds aloft forecast
  • Reports the time since the Skew-T sonde was launched
  • Adds a string param to the units object to allow properly printing units with the distances above (and on the top of menu printout)
  • Inverts reported temperatures above 24,000 ft so that the "temperatures negative above 24,000 ft" disclaimer is not necessary (can tweak if unclear)

The general idea of these UI changes is to make some confusing/unclear reporting stations more clear. Many winds aloft reporting points in Alaska, the Pacific, and Canada have codes that do not correspond to widely known landmarks (e.g. 5AF is just an arbitrary point in the Pacific Ocean), and many radiosonde codes do not correspond to an airport code (e.g. OTX is the reporting code for Spokane, WA, which has no airport by that name/code). Therefore, giving some spatial relationship between the selected point and the corresponding wind data is necessary to get an idea of the reliability of the data being presented.

Additionally, the times for the winds aloft forecasts and radiosonde launches are in UTC, which can be a bit of a hassle to quickly convert to local time.

Inverting the temperatures reported above 24k is mostly to remove text clutter from the menu, since new text has been added.

Screenshot_20241224_202705
Screenshot_20241224_202429

@apps4av
Copy link
Owner

apps4av commented Dec 25, 2024

Instead of 4:35 time remaining, better to show local time with Z time (in brackets). Will be nice to see when the winds were downloaded.

@no-lex
Copy link
Contributor Author

no-lex commented Dec 26, 2024

Now with local expiration time.
Screenshot_20241225_193619

@no-lex
Copy link
Contributor Author

no-lex commented Jan 1, 2025

Rebased on 7b2b130.

Screenshot_20250101_132839
Screenshot_20250101_132826

@apps4av
Copy link
Owner

apps4av commented Jan 2, 2025

Two issues
1- units need not be specified as user can change to miles and nautical miles, and at some point I bet there will be a request for meters.
2- Just putting reception time on ST or Winds is half the solution. It needs to be done for every internet download. Metar, Notam, Taf, Tfr, etc. in a uniform way so code can be reused.

@no-lex
Copy link
Contributor Author

no-lex commented Jan 4, 2025

I opted to specify units not particularly because of the actual size of the unit, but rather to clarify what kind of unit was being conveyed. I found that a string such as Wind: 22 SE @ AST looks a lot more like an indication of the wind strength rather than how far away the winds were taken. Something like Wind: 22 nm SE @ AST is unambiguous. Since the unit string is added to the units localization code, it is straightforward to extend to e.g. meters by implementing a different constructor (it already will display the appropriate unit that the user has chosen).

I can look into extending the reception time for other received data. It should not be very difficult to implement.

String dir;
double bearing = getMagneticHeading(bearingIn, declination);
if ((bearing > dirDegrees) && (bearing <= (90 - dirDegrees))) {
dir = "SW of";
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is an issue as the direction is from the point touched. Of is required you are off of this heading

}

Weather? winds;
String? station = WindsCache.locateNearestStation(showDestination.coordinate);
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How does this work with weather received from ADSB?

@@ -0,0 +1,25 @@

class TimeZone {
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There should be a package for it 'tz' in pubspec.yaml.

mpsTo = 2.23694;
toMps = 0.44704;
knotsTo = 1.15078;
distanceName = 'mi';
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Have all the places that use this been added this info? For example measuring tool?

CachedNetworkImage image = CachedNetworkImage(imageUrl: url, cacheManager: FileCacheManager().networkCacheManager, errorWidget: errorImage,);
return Container(padding: const EdgeInsets.all(10), child:
InteractiveViewer(child: Container(color: Colors.white , alignment: Alignment.center, child: image)));
return ListView(
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Stack is a better widget here

return w24k;
}
else if (altitude == 30000) {
return w30k;
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is confusing as pilots are used to seeing negative temps.

Copy link
Owner

@apps4av apps4av left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Has issues. While changes are good step forward, overall view is not considered. This will cause inconsistency across the app.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants