Fixed in commit 48f6053 <https://github.com/weewx/weewx/commit/48f6053acf17daee67264298f7b5983a53b91fca>
-tk On Mon, Apr 3, 2023 at 4:11 PM Tom Keffer <[email protected]> wrote: > Mystery solved: https://github.com/python-pillow/Pillow/pull/6978 > > I'm sure they broke a lot of code with this change. > > On Mon, Apr 3, 2023 at 4:03 PM Tom Keffer <[email protected]> wrote: > >> 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/CAPq0zEDBcsjmSZw4VM0WQjTa%2BhYwRgdMY2LgTF2L4N3wtKY7jg%40mail.gmail.com.
