The error seems to be peculiar to the most recent version of Pillow. If I hardwire in your values and use any version prior to 9.5.0, it runs without errors. If I use Pillow 9.5.0, I get the same error as you. I see nothing in the 9.5.0 release notes that mentions anything related to draws.
Pillow 9.5.0 was just posted 1 April. Maybe it's an April Fool's joke? More likely, it's being stricter about the ordering of the box coordinates, but they didn't mention that in the release notes. What version of Pillow are you using? I assume 9.5.0 *python3 -c "import PIL;print(PIL.__version__)"* and *python3 -m pip list | grep Pillow* I've created issue 862 <https://github.com/weewx/weewx/issues/862> to track. In the meantime, I'd suggest using Pillow 9.4.0. -tk On Mon, Apr 3, 2023 at 12:47 PM c s (224) <[email protected]> wrote: > Thank you very much! You are right! Setting the "show_daynight" in > skin.conf to False resolves the problem. I did not touch skin.conf before > and used the version as it is delivered in weewx-4.10.2.tar.gz. > > When I turn "show_daynight" on again and add your additional print > messages (and keep the ones I had already added before) I get the following: > > In _renderDayNight(), self.yscale = (0.0, 5.0, 0.5) > latitude=48.14, longitude=11.57 > first=night, transitions=[1680497278, 1680543969] > Draw rectangle failed: > ((1680462000, 0.0), (1680497278, 5.0)) > [(44.90740740764886, 144.5), (202.42440329305828, 24.5)] > self.xscale: 0.004465020576131688, self.xoffset: -7503253, self.yscale: > -24.0, self.yoffset: 144 > > Draw rectangle failed: > ((1680497278, 0.0), (1680543969, 5.0)) > [(202.42440329305828, 144.5), (410.9006790127605, 24.5)] > self.xscale: 0.004465020576131688, self.xoffset: -7503253, self.yscale: > -24.0, self.yoffset: 144 > > > Does this tell you anything? What can I do to resolve this problem > (without switching this feature off)? > > As a side remark: in my installation of "WeeWX: Installation using > setup.py" I use the native GW1000 driver. Only in the docker image I left > everything as it was and continue to use the interceptor driver. > > Thank you very much! > > c s (224) schrieb am Montag, 3. April 2023 um 13:18:39 UTC+2: > >> Hello, >> >> I have just installed weewx as described here: >> https://weisser-zwerg.dev/posts/ecowitt-gw2000-weewx-docker >> >> And I run into an error that prevents the images from being drawn: >> >> weewx-weewx-1 | Apr 3 13:11:03 weewx[20] ERROR weewx.reportengine: >> **** Generator terminated >> weewx-weewx-1 | Traceback (most recent call last): >> weewx-weewx-1 | File "/home/weewx/bin/weewx/reportengine.py", >> line 197, in run >> weewx-weewx-1 | obj.start() >> weewx-weewx-1 | File "/home/weewx/bin/weewx/reportengine.py", >> line 385, in start >> weewx-weewx-1 | self.run() >> weewx-weewx-1 | File "/home/weewx/bin/weewx/imagegenerator.py", >> line 42, in run >> weewx-weewx-1 | self.gen_images(self.gen_ts) >> weewx-weewx-1 | File "/home/weewx/bin/weewx/imagegenerator.py", >> line 114, in gen_images >> weewx-weewx-1 | image = plot.render() >> weewx-weewx-1 | ^^^^^^^^^^^^^ >> weewx-weewx-1 | File "/home/weewx/bin/weeplot/genplot.py", line >> 222, in render >> weewx-weewx-1 | self._renderDayNight(sdraw) >> weewx-weewx-1 | File "/home/weewx/bin/weeplot/genplot.py", line >> 266, in _renderDayNight >> weewx-weewx-1 | sdraw.rectangle(((xleft,self.yscale[0]), >> weewx-weewx-1 | File "/home/weewx/bin/weeplot/utilities.py", line >> 442, in rectangle >> weewx-weewx-1 | self.draw.rectangle(box_scaled, **options) >> weewx-weewx-1 | File >> "/opt/venv/lib/python3.11/site-packages/PIL/ImageDraw.py", line 294, in >> rectangle >> weewx-weewx-1 | self.draw.draw_rectangle(xy, fill, 1) >> weewx-weewx-1 | ValueError: y1 must be greater than or equal to y0 >> >> I have followed the complete set-up process as described in "WeeWX: >> Installation using setup.py", except that I do use a conda environment and >> pip packages rather than the OS packages: >> >> > mamba create -n weewx python=3.9 >> > conda activate weewx >> > pip3 install configobj paho-mqtt pyserial pyusb Cheetah3 Pillow ephem >> > wget https://weewx.com/downloads/weewx-4.10.2.tar.gz >> > tar -xzvf weewx-4.10.2.tar.gz >> > cd weewx-4.10.2 >> > python3 ./setup.py build >> > python3 ./setup.py install >> > # create the weewx.conf.patch from here: >> https://weisser-zwerg.dev/posts/ecowitt-gw2000-weewx-docker/ >> > patch -p1 weewx.conf < weewx.conf.patch >> > wget -O weewx-mqtt.zip >> https://github.com/matthewwall/weewx-mqtt/archive/master.zip >> > ./bin/wee_extension --install ./weewx-mqtt.zip >> > wget -O weewx-interceptor.zip >> https://github.com/matthewwall/weewx-interceptor/archive/master.zip >> > ./bin/wee_extension --install ./weewx-interceptor.zip >> > # ------------------- >> > ./bin/weewxd >> >> I still run into the exact same problem. I've tried several modifications >> to the config file, but cannot figure out what causes this problem. I've >> also added some print statement to tell me more about the issue around the >> drawing of the rectangle: >> def rectangle(self, box, **options): >> """Draw a scaled rectangle. >> box: A pair of 2-way tuples, containing coordinates of opposing corners >> of the box. >> options: passed on to draw.rectangle. Usually contains 'fill' (the color) >> """ >> box_scaled = [(coord[0] * self.xscale + self.xoffset + 0.5, >> coord[1] * self.yscale + self.yoffset + 0.5) for coord in box] >> try: >> self.draw.rectangle(box_scaled, **options) >> print("Draw rectangle succeeded.") >> except: >> print("Draw rectangle failed:") >> print(box) >> print(box_scaled) >> print(f"self.xscale: {self.xscale}, self.xoffset: {self.xoffset}, >> self.yscale: {self.yscale}, self.yoffset: {self.yoffset}\n") >> pass >> >> And I get results as follows: >> # ((1680429600, 1029.6000000000001), (1680457455, 1030.1000000000001)) >> # [(44.01851851865649, 144.4999999999709), (216.61388888955116, >> 24.499999999970896)] >> # self.xscale: 0.004465020576131688, self.xoffset: -7503109, self.yscale: >> -240.0, self.yoffset: 247248 >> >> Do you have any clues on how to resolve this? >> >> >> Thanks! >> >> -- > You received this message because you are subscribed to the Google Groups > "weewx-user" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/weewx-user/fa94caf5-73e2-4b40-a7b9-f56b4153894fn%40googlegroups.com > <https://groups.google.com/d/msgid/weewx-user/fa94caf5-73e2-4b40-a7b9-f56b4153894fn%40googlegroups.com?utm_medium=email&utm_source=footer> > . > -- You received this message because you are subscribed to the Google Groups "weewx-user" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/weewx-user/CAPq0zEA5corOpQC7aa_8YJLZnL4Cezpu85fU-A73Wx8YhUz1kQ%40mail.gmail.com.
