[Marble-devel] Fwd: GSoC: Weather Data

John T. Groszko grosjoh1 at iit.edu
Thu Apr 2 01:01:42 CEST 2009


Alright, fleshed it out some more as per Torsten's suggestions. Here
goes draft II...

Thanks,
John Groszko
---

Name: John Groszko
E-Mail Address: grosjoh1 at iit.edu
Freenode IRC Nick: jgroszko
Location: Chicago, IL, USA CST

Proposal Name: Network enabling Plasma::Service

Motivation for Proposal / Goal:

Weather data is freely available on the Internet through standard
formats like XML and RSS. This data can be culled together and used
mapped to geographic locations in Marble. Conditions like wind speed,
temperature, and severe weather could be displayed visually to the user,
much like what can be seen on a TV forecast.

This information can be of use to travelers looking at their
destinations, or people engaging in sports that rely on weather conditions.

Implementation Details:

I envision the interface for this feature to be similar to the current
“Legend” tab that's currently in Marble. Pieces of information can be
toggled on and off depending on what the user is interested in.

This feature can be implemented as a plug in. The main plug in class,
WeatherDataPlugin will send the region the user is viewing to enabled
DataEngines. When a DataEngine gets information for the region it can
signal it back to WeatherDataPlugin. WeatherDataPlugin will maintain a
list of data points in the current and nearby regions. These data points
will be a hash of the latitude and longitude for the conditions, as well
as the type of information at that point. On entering render(),
WeatherDataPlugin will pass the data points, according to type, to
classes inherited from DataPointRenderer.

Data engines will advertise to WeatherDataPlugin what region they cover,
and what types of data they can retrieve. This will allow
WeatherDataPlugin to only query those data engines when they are enabled
by the user, and the data available from that engine is actually
relevant. Data engines should handle their own caching so that it's not
hitting servers every 5 seconds.

BasicRenderer will render the usual sun or cloud icons, and basic
information like high/low temperatures, and chance of precipitation.

WindSpeedRenderer would be displayed showing a simplified version of
traditional station models (stick and notches). It may be more useful
for a casual user to show something like a windsock and a text label for
speed.

SevereWeatherRenderer could show alerts that are often issued across
large areas, such as counties in the US. These areas should be
highlighted. In addition, sometimes more detailed information is
available, such as individual lightning strikes or earthquake
epicenters; this data can be represented in a similar manner to above,
perhaps with a different renderer class.

This design should be sufficiently modular in that different data
sources can be swapped in and out. Online data sources don't necessarily
have global coverage, and so it should be possible to use different
sources for different regions. New Renderers should also be trivial to
write, so that data can be displayed in new ways or new types of weather
data can be displayed.

Tentative Timeline:

Read code/documentation, implement skeleton plugin
2 weeks – May 25to June 5

Data engine design, selecting, downloading and parsing data sources
4 weeks – June 8 to July 3

Renderer design, UI elements, drawing icons on the map
4 weeks – July 6 to July 31

QA and polishing
2 weeks – August 3 to August 14

Other Obligations:

My only other obligation this summer will continuing my part time
internship, working mornings. I should be able to put 25-30 hours each
week towards GSoC.

About Me:

I'm currently studying for a Master's in Computer Science at Illinois
Institute of Technology in Chicago, IL, where I got my undergraduate
degree. Some of my favorite areas include functional programming and
distributed systems. Linux has been my primary OS for the last 4 years.
I'm looking to start giving back to the OSS community. I've already
submitted a few patches for Kopete, and left to my own devices I'll
probably submit a few more.

Outside of school I'm fairly active. As an undergraduate I was active in
my fraternity and participated in several community service projects. I
also swam on the varsity team, and I've recently started playing Water
Polo with a local group. I've also been known to make my own maki sushi
rolls, and jump out of airplanes.

Torsten Rahn wrote:
> Hi John,
>
>   
>> Implementation Details:
>>
>> I envision the interface for this feature to be similar to the current
>> “Legend” tab that's currently in Marble. Pieces of information can be
>> toggled on and off depending on what the user is interested in.
>>     
>
> [...]
>
>   
>> Severe weather alerts are often issued across large areas, such as
>> counties in the US. Highlighting these areas may prove to be
>> non-trivial. In addition, sometimes more detailed information is
>> available, such as individual lightning strikes or earthquake
>> epicenters; this data can be represented in a similar manner to above.
>>     
>
> That's all very much from the user perspective. I think it would be good if 
> you added some further thoughts on how the technical implementation would work 
> (just the "big picture", maybe you mention a few important classes).
>
> Otherwise it looks good :-)
>
> Regards,
>
> Torsten
> _______________________________________________
>   
> Marble-devel mailing list
> Marble-devel at kde.org
> https://mail.kde.org/mailman/listinfo/marble-devel
>   



More information about the Marble-devel mailing list