Windy Community
    • Unread
    • Categories
    • Groups
    • Go to windy.com
    • Register
    • Login

    Help running a new plugin - error on the Windy plugin page

    Scheduled Pinned Locked Moved Windy Plugins
    22 Posts 6 Posters 14.3k Views 5 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • ivoI Offline
      ivo Windy Staff @johnckealy
      last edited by

      @johnckealy Happy to see another plugin dev. Will check the codes

      Gkikas LGPZG 1 Reply Last reply Reply Quote 1
      • Gkikas LGPZG Offline
        Gkikas LGPZ Moderator Meteorologist @ivo
        last edited by

        @ivo
        ... any progress ?

        1 Reply Last reply Reply Quote 0
        • ivoI Offline
          ivo Windy Staff
          last edited by

          Wow @johnckealy your plugin is monster. Found the bug and fixed. Will be deployed next week. Will create some data loader so plugins will have access to our backend API

          1 Reply Last reply Reply Quote 2
          • johnckealyJ Offline
            johnckealy
            last edited by

            Great to hear, thanks @ivo! Sorry if the code is a little rough -- I'm a meteorologist learning programming, rather than the other way around... But would relish seeing it deployed with current data! :)

            1 Reply Last reply Reply Quote 2
            • ivoI Offline
              ivo Windy Staff
              last edited by

              Now is fixed and your plugin is working. As I suggest now I should have make soma data loader

              1 Reply Last reply Reply Quote 1
              • johnckealyJ Offline
                johnckealy
                last edited by

                @ivo - Brilliant! I'm chuffed to see it working on the site :) Let me know if you need any help understanding the code. You just need to load the variables Tascent, Pascent, Tdascent, U, and V with spot data at each level. The comments should hopefully explain this.

                1 Reply Last reply Reply Quote 0
                • ivoI Offline
                  ivo Windy Staff
                  last edited by

                  Basically we can deliver the data we have. We download only part of ECMWF data to save the money. Can you check official ECMWF's domunetation and find their official name of these layers.

                  1 Reply Last reply Reply Quote 0
                  • johnckealyJ Offline
                    johnckealy
                    last edited by

                    @ivo Windy appears to use pressure levels from ECMWF, with temperature, humidity, and wind at each of these levels already available on the site. So what needs to be done on your backend is to have a function that takes a lat/lon picker point as input, finds the nearest grid point on the model, and then finds the data at each of these pressure levels. You might be able to adapt this from my closest_latlon() function in plugin.html. The variable Pascent (the ascent data for P) will always be:

                    Pascent = [ 1000, 950, 925, 900, 850, 800, 700, 600, 500, 400, 300, 250, 200, 150 ]

                    Though I see you also use "surface" and "100m" instead of 1000hPa, so by all means use that if you also have temperature and relative humidity at those levels.

                    Then Tascent is the temperature (shortname is "T" in the ECMWF docs), U is the U-velocity (shortname "U"), V is the V-velocity (shortname "V").

                    One thing I'm now realising is that I used an equation to convert the humidity into the dewpoint while generating the sample data, so you'll need to add this into plugin.html. To get Tdascent (the dewpoint temperature ascent), relative humidity (shortname is "R" at ECMWF, and the Windy is named "Humidity") must be converted to dew point using this formula:

                    for (var p = 0; p < Pascent.length; p++) {
                    Tdascent[p] = 243.04*(Math.log(R[p]/100)+((17.625Tascent[p])/(243.04+Tascent[p])))/(17.625-Math.log(R[p]/100)-((17.625T)/(243.04+T)))
                    }

                    rittelsR 1 Reply Last reply Reply Quote 1
                    • rittelsR Offline
                      rittels Code contributor @johnckealy | Premium
                      last edited by

                      @johnckealy
                      cool plugin, you could use the interpolator in the meantime?

                      johnckealyJ 1 Reply Last reply Reply Quote 0
                      • johnckealyJ Offline
                        johnckealy @rittels
                        last edited by

                        @rittels Sure, though I'd say nearest neighbour is plenty for now! Vertically there is some interpolation going on in the js, and horizontally, ECMWF's 9km is loads of detail :) Would definitely be a nice addition for later.

                        1 Reply Last reply Reply Quote 0
                        • rittelsR Offline
                          rittels Code contributor | Premium
                          last edited by

                          Hi John
                          Nearest neighbor is indeed plenty!!
                          However, you can use the W.interpolator to read data at the different levels. It is slow and cumbersome, but somewhat cute.
                          I gave it a go myself: windy-plugin-readlevels.

                          1 Reply Last reply Reply Quote 0
                          • ivoI Offline
                            ivo Windy Staff
                            last edited by

                            @rittels said in Help running a new plugin - error on the Windy plugin page:

                            windy-plugin-readlevels

                            Do not worry I will make dataLoader, so far I am finishing one big thing on Windy

                            rittelsR 1 Reply Last reply Reply Quote 2
                            • rittelsR Offline
                              rittels Code contributor @ivo | Premium
                              last edited by

                              @ivo Thx!!

                              1 Reply Last reply Reply Quote 1
                              • johnckealyJ Offline
                                johnckealy
                                last edited by

                                @ivo great to see the plugin loader is ready for model data. I'll look into updating the skewt plugin when I get a chance (bit busy at the moment though).

                                There was a bug in my plugin that showed the error "TypeError: Plugin.instance is not a function" and you fixed this. Can you remember what the bug was? I'll need to patch in the fix to my original version.

                                ivoI 1 Reply Last reply Reply Quote 1
                                • ivoI Offline
                                  ivo Windy Staff @johnckealy
                                  last edited by

                                  @johnckealy It was bug on our side

                                  S 1 Reply Last reply Reply Quote 0
                                  • S Offline
                                    shashighedia @ivo
                                    last edited by

                                    @ivo hi can some one explain what the red line on the temperature is?- thanks
                                    f9850477-ca82-49b2-a6ee-f9c6aa4e31a8-image.png

                                    KorinaK johnckealyJ 2 Replies Last reply Reply Quote 0
                                    • KorinaK Offline
                                      Korina @shashighedia
                                      last edited by

                                      @shashighedia @johnckealy

                                      Korina

                                      1 Reply Last reply Reply Quote 1
                                      • johnckealyJ Offline
                                        johnckealy @shashighedia
                                        last edited by

                                        @shashighedia

                                        The red line is a parcel ascent. Drag the purple slider to the right, and this will change. The concept is that as the surface temperature increases, the energy of a rising parcel of also increases (known as CAPE). By comparing the red curve with the existing temperature profile, you can diagnose the instability (likelihood of showers, thunderstorms etc) of the atmosphere. In theory, you can even use this to predict the exact onset times of convective clouds, or even afternoon thunderstorms. Just google "radiosonde parcel ascent", "convective available potential energy", or "lifted index" to get started.

                                        S 1 Reply Last reply Reply Quote 1
                                        • S Offline
                                          shashighedia
                                          last edited by

                                          thanks for the explanation

                                          • much appreciated
                                          1 Reply Last reply Reply Quote 0
                                          • S Offline
                                            shashighedia @johnckealy
                                            last edited by

                                            @johnckealy many thanks for the explanation- much appreciated.

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post
                                            Windy Community  |  Powered by excellent NodeBB
                                            Terms of Use     Privacy Policy     Windy.com