smousavi05 / EQTransformer

EQTransformer, a python package for earthquake signal detection and phase picking using AI.
https://rebrand.ly/EQT-documentations
MIT License
301 stars 148 forks source link

Pakage doesn't run under Windows - invalid filename #112

Closed cgahr closed 2 years ago

cgahr commented 2 years ago

Hi,

unfortunately, the package doesn't run under windows.

How to reproduce:

Minimum not working example Fails:

from matplotlib import pyplot as plt
import numpy as np

plt.plot(np.arange(10))
plt.savefig('not:work:ing.png')

Works:

from matplotlib import pyplot as plt
import numpy as np

plt.plot(np.arange(10))
plt.savefig('work:ing.png')

Bug The bug is due to an invalid file name. In general, filenames like path:some:thing.png are not valid, two : are not allowed in windows. However, path:something.png with only one : works just fine.

How to fix On line 1169 in /core/predictor.py, the variable save_figs cannot contain 2 :.

BR, Sophia

smousavi05 commented 2 years ago

Thank you very much @ConstantinGahr. Yes, unfortunately the package does not work under the windows yet but as you mentioned it is only due to minor issues like naming and path convention differences between the os and windows. It should be easy to fix all these issues by just following the error comments and it would be great if you could send your fixes through pull requests so other people could use it as well.

smousavi05 commented 2 years ago

@ConstantinGahr I have already applied your suggested fixes to the code. It would be great if you could reinstall EqT and let me know if the new version works under Windows or not?

cgahr commented 2 years ago

@smousavi05 Thank you for your quick reply and the fix. It seems to work without a problem!

Anirudh366 commented 4 months ago

Referen Used the instruction conda create -n eqt python=3.7

conda activate eqt

conda install -c smousavi05 eqtransformer

Hello @smousavi05 , Facing the same issue , can you share the updated version link/instruction for windows.

smousavi05 commented 3 months ago

@Anirudh366 it is difficult to advise a solution without more info on the error. An alternative would be to use the Seisbench implementation of EQT in PyTorch.

Anirudh366 commented 3 months ago

Hello sir , I am running the Detection and Picking code from the examples present at the github of EQTransformer , I have installed the EQTransformer using Anaconda environment as given in the readme file. These are the packages which I have installed by creating separate environment in anaconda.

Name Version Build Channel

_tflow_select 2.2.0 eigen absl-py 0.15.0 pyhd3eb1b0_0 aiohttp 3.8.3 py37h2bbff1b_0 aiosignal 1.2.0 pyhd3eb1b0_0 alabaster 0.7.12 pyhd3eb1b0_0 anyio 3.5.0 py37haa95532_0 argon2-cffi 21.3.0 pyhd3eb1b0_0 argon2-cffi-bindings 21.2.0 py37h2bbff1b_0 arrow 1.2.3 py37haa95532_1 astor 0.8.1 py37haa95532_0 astroid 2.14.2 py37haa95532_0 async-timeout 4.0.2 py37haa95532_0 asynctest 0.13.0 py_0 atomicwrites 1.4.0 py_0 attrs 22.1.0 py37haa95532_0 autopep8 1.6.0 pyhd3eb1b0_1 babel 2.11.0 py37haa95532_0 backcall 0.2.0 pyhd3eb1b0_0 bcrypt 3.2.0 py37h2bbff1b_1 beautifulsoup4 4.11.1 py37haa95532_0 binaryornot 0.4.4 pyhd3eb1b0_1 black 22.6.0 py37haa95532_0 blas 1.0 mkl bleach 4.1.0 pyhd3eb1b0_0 blinker 1.4 py37haa95532_0 bottleneck 1.3.5 py37h080aedc_0 brotli 1.0.9 h2bbff1b_8 brotli-bin 1.0.9 h2bbff1b_8 brotlipy 0.7.0 py37h2bbff1b_1003 bzip2 1.0.8 h2bbff1b_6 c-ares 1.19.1 h2bbff1b_0 ca-certificates 2024.3.11 haa95532_0 cachetools 4.2.2 pyhd3eb1b0_0 certifi 2022.12.7 py37haa95532_0 cffi 1.15.1 py37h2bbff1b_3 chardet 4.0.0 py37haa95532_1003 charset-normalizer 2.0.4 pyhd3eb1b0_0 click 8.0.4 py37haa95532_0 cloudpickle 2.0.0 pyhd3eb1b0_0 colorama 0.4.6 py37haa95532_0 cookiecutter 1.7.3 pyhd3eb1b0_0 cryptography 38.0.2 py37h953a470_1 conda-forge cycler 0.11.0 pyhd3eb1b0_0 debugpy 1.5.1 py37hd77b12b_0 decorator 5.1.1 pyhd3eb1b0_0 defusedxml 0.7.1 pyhd3eb1b0_0 diff-match-patch 20200713 pyhd3eb1b0_0 dill 0.3.6 py37haa95532_0 docutils 0.17.1 py37haa95532_1 entrypoints 0.4 py37haa95532_0 eqtransformer 0.1.59 py37_0 smousavi05 fftw 3.3.9 h2bbff1b_2 flake8 4.0.1 pyhd3eb1b0_1 flit-core 3.6.0 pyhd3eb1b0_0 fonttools 4.25.0 pyhd3eb1b0_0 freetype 2.12.1 ha860e81_0 frozenlist 1.3.3 py37h2bbff1b_0 gast 0.2.2 py37_0 giflib 5.2.1 h8cc25b3_3 glib 2.78.4 hd77b12b_0 glib-tools 2.78.4 hd77b12b_0 google-auth 2.6.0 pyhd3eb1b0_0 google-auth-oauthlib 0.4.4 pyhd3eb1b0_0 google-pasta 0.2.0 pyhd3eb1b0_0 greenlet 2.0.1 py37hd77b12b_0 grpc-cpp 1.48.1 h568aa7b_1 conda-forge grpcio 1.48.1 py37h8a48564_1 conda-forge h5py 2.10.0 py37h5e291fa_0 hdf5 1.10.4 h7ebc959_0 icc_rt 2022.1.0 h6049295_2 icu 58.2 ha925a31_3 idna 3.4 py37haa95532_0 imagesize 1.4.1 py37haa95532_0 importlib-metadata 3.10.0 py37haa95532_0 importlib_metadata 3.10.0 hd3eb1b0_0 importlib_resources 5.2.0 pyhd3eb1b0_1 inflection 0.5.1 py37haa95532_0 iniconfig 1.1.1 pyhd3eb1b0_0 intel-openmp 2021.4.0 haa95532_3556 intervaltree 3.1.0 pyhd3eb1b0_0 ipykernel 6.15.2 py37haa95532_0 ipython 7.31.1 py37haa95532_1 ipython_genutils 0.2.0 pyhd3eb1b0_1 ipywidgets 7.6.5 pyhd3eb1b0_2 isort 5.9.3 pyhd3eb1b0_0 jedi 0.18.1 py37haa95532_1 jellyfish 0.9.0 py37h2bbff1b_0 jinja2 3.1.2 py37haa95532_0 jinja2-time 0.2.0 pyhd3eb1b0_3 jpeg 9e h2bbff1b_1 json5 0.9.6 pyhd3eb1b0_0 jsonschema 4.17.3 py37haa95532_0 jupyter 1.0.0 py37haa95532_8 jupyter_client 7.4.9 py37haa95532_0 jupyter_console 6.4.4 py37haa95532_0 jupyter_core 4.11.2 py37haa95532_0 jupyter_server 1.23.4 py37haa95532_0 jupyterlab 3.5.3 py37haa95532_0 jupyterlab_pygments 0.1.2 py_0 jupyterlab_server 2.15.2 py37haa95532_0 jupyterlab_widgets 1.0.0 pyhd3eb1b0_1 keras 2.3.1 0 keras-applications 1.0.8 py_1 keras-base 2.3.1 py37_0 keras-preprocessing 1.1.2 pyhd3eb1b0_0 keyring 23.4.0 py37haa95532_0 kiwisolver 1.4.4 py37hd77b12b_0 krb5 1.20.1 h5b6d351_0 lazy-object-proxy 1.6.0 py37h2bbff1b_0 lerc 3.0 hd77b12b_0 libabseil 20220623.0 cxx17_h1a56200_6 conda-forge libblas 3.8.0 20_mkl conda-forge libbrotlicommon 1.0.9 h2bbff1b_8 libbrotlidec 1.0.9 h2bbff1b_8 libbrotlienc 1.0.9 h2bbff1b_8 libcblas 3.8.0 20_mkl conda-forge libclang 14.0.6 default_hb5a9fac_1 libclang13 14.0.6 default_h8e68704_1 libdeflate 1.17 h2bbff1b_1 libffi 3.4.4 hd77b12b_1 libglib 2.78.4 ha17d25a_0 libiconv 1.16 h2bbff1b_3 liblapack 3.8.0 20_mkl conda-forge libpng 1.6.39 h8cc25b3_0 libpq 12.17 h906ac69_0 libprotobuf 3.20.3 h23ce68f_0 libsodium 1.0.18 h62dcd97_0 libspatialindex 1.9.3 h6c2663c_0 libtiff 4.5.1 hd77b12b_0 libwebp 1.2.4 hbc33d0d_1 libwebp-base 1.2.4 h2bbff1b_1 libxml2 2.9.14 h0ad7f3c_0 libxslt 1.1.35 h2bbff1b_0 libzlib 1.2.13 hcfcfb64_5 conda-forge lxml 4.9.1 py37h1985fb9_0 lz4-c 1.9.4 h2bbff1b_1 markdown 3.3.4 py37haa95532_0 markupsafe 2.1.1 py37h2bbff1b_0 matplotlib 3.5.3 py37haa95532_0 matplotlib-base 3.5.3 py37hd77b12b_0 matplotlib-inline 0.1.6 py37haa95532_0 mccabe 0.7.0 pyhd3eb1b0_0 mistune 0.8.4 py37hfa6e2cd_1001 mkl 2020.2 256 mkl-service 2.3.0 py37h196d8e1_0 mkl_fft 1.3.0 py37h46781fe_0 mkl_random 1.1.1 py37h47e9c7a_0 multidict 6.0.2 py37h2bbff1b_0 munkres 1.1.4 py_0 mypy_extensions 0.4.3 py37haa95532_1 nbclassic 0.5.2 py37haa95532_0 nbclient 0.5.13 py37haa95532_0 nbconvert 6.5.4 py37haa95532_0 nbformat 5.7.0 py37haa95532_0 nest-asyncio 1.5.6 py37haa95532_0 notebook 6.5.2 py37haa95532_0 notebook-shim 0.2.2 py37haa95532_0 numexpr 2.7.3 py37hcbcaa1e_0 numpy 1.20.3 py37hcbcd69c_0 conda-forge numpy-base 1.18.5 py37hc3f5095_0 numpydoc 1.5.0 py37haa95532_0 oauthlib 3.2.1 py37haa95532_0 obspy 1.3.1 py37h0b711f8_0 conda-forge openssl 3.0.13 h2bbff1b_1 opt_einsum 3.3.0 pyhd3eb1b0_1 packaging 22.0 py37haa95532_0 pandas 1.3.5 py37h6214cd6_0 pandocfilters 1.5.0 pyhd3eb1b0_0 paramiko 2.8.1 pyhd3eb1b0_0 parso 0.8.3 pyhd3eb1b0_0 pathspec 0.10.3 py37haa95532_0 pcre2 10.42 h0ff8eda_1 pexpect 4.8.0 pyhd3eb1b0_3 pickleshare 0.7.5 pyhd3eb1b0_1003 pillow 9.4.0 py37hd77b12b_0 pip 22.3.1 py37haa95532_0 pkginfo 1.8.3 py37haa95532_0 pkgutil-resolve-name 1.3.10 py37haa95532_0 platformdirs 2.5.2 py37haa95532_0 pluggy 1.0.0 py37haa95532_1 ply 3.11 py37_0 poyo 0.5.0 pyhd3eb1b0_0 prometheus_client 0.14.1 py37haa95532_0 prompt-toolkit 3.0.36 py37haa95532_0 prompt_toolkit 3.0.36 hd3eb1b0_0 protobuf 3.20.3 py37hd77b12b_0 psutil 5.9.0 py37h2bbff1b_0 ptyprocess 0.7.0 pyhd3eb1b0_2 py 1.11.0 pyhd3eb1b0_0 pyasn1 0.4.8 pyhd3eb1b0_0 pyasn1-modules 0.2.8 py_0 pycodestyle 2.8.0 pyhd3eb1b0_0 pycparser 2.21 pyhd3eb1b0_0 pydocstyle 6.3.0 py37haa95532_0 pyflakes 2.4.0 pyhd3eb1b0_0 pygments 2.11.2 pyhd3eb1b0_0 pyjwt 2.4.0 py37haa95532_0 pylint 2.16.2 py37haa95532_0 pyls-spyder 0.4.0 pyhd3eb1b0_0 pynacl 1.5.0 py37h8cc25b3_0 pyopenssl 23.0.0 py37haa95532_0 pyparsing 3.0.9 py37haa95532_0 pyqt 5.15.7 py37hd77b12b_0 pyqt5-sip 12.11.0 py37hd77b12b_0 pyqtwebengine 5.15.7 py37hd77b12b_0 pyreadline 2.1 py37_1 pyrsistent 0.18.0 py37h196d8e1_0 pysocks 1.7.1 py37_1 pytest 7.1.2 py37haa95532_0 python 3.7.1 h33f27b4_4 python-dateutil 2.8.2 pyhd3eb1b0_0 python-fastjsonschema 2.16.2 py37haa95532_0 python-lsp-black 1.2.1 py37haa95532_0 python-lsp-jsonrpc 1.0.0 pyhd3eb1b0_0 python-lsp-server 1.5.0 py37haa95532_0 python-slugify 5.0.2 pyhd3eb1b0_0 python_abi 3.7 2_cp37m conda-forge pytoolconfig 1.2.5 py37haa95532_1 pytz 2022.7 py37haa95532_0 pywin32 305 py37h2bbff1b_0 pywin32-ctypes 0.2.0 py37_1001 pywinpty 2.0.10 py37h5da7b33_0 pyyaml 6.0 py37h2bbff1b_1 pyzmq 23.2.0 py37hd77b12b_0 qdarkstyle 3.0.2 pyhd3eb1b0_0 qstylizer 0.2.2 py37haa95532_0 qt-main 5.15.2 h879a1e9_9 qt-webengine 5.15.9 h5bd16bc_7 qtawesome 1.2.2 py37haa95532_0 qtconsole 5.3.2 py37haa95532_0 qtpy 2.2.0 py37haa95532_0 qtwebkit 5.212 h3ad3cdb_4 re2 2022.06.01 h0e60522_1 conda-forge requests 2.28.1 py37haa95532_0 requests-oauthlib 1.3.0 py_0 rope 1.7.0 py37haa95532_0 rsa 4.7.2 pyhd3eb1b0_1 rtree 1.0.1 py37h2eaa2aa_0 scipy 1.4.1 py37h9439919_0 send2trash 1.8.0 pyhd3eb1b0_1 setuptools 65.6.3 py37haa95532_0 sip 6.6.2 py37hd77b12b_0 six 1.16.0 pyhd3eb1b0_1 sniffio 1.2.0 py37haa95532_1 snowballstemmer 2.2.0 pyhd3eb1b0_0 sortedcontainers 2.4.0 pyhd3eb1b0_0 soupsieve 2.3.2.post1 py37haa95532_0 sphinx 4.2.0 pyhd3eb1b0_1 sphinxcontrib-applehelp 1.0.2 pyhd3eb1b0_0 sphinxcontrib-devhelp 1.0.2 pyhd3eb1b0_0 sphinxcontrib-htmlhelp 2.0.0 pyhd3eb1b0_0 sphinxcontrib-jsmath 1.0.1 pyhd3eb1b0_0 sphinxcontrib-qthelp 1.0.3 pyhd3eb1b0_0 sphinxcontrib-serializinghtml 1.1.5 pyhd3eb1b0_0 spyder 5.3.3 py37haa95532_0 spyder-kernels 2.3.3 py37haa95532_0 sqlalchemy 1.4.39 py37h2bbff1b_0 sqlite 3.45.3 h2bbff1b_0 tensorboard 2.8.0 py37haa95532_0 tensorboard-data-server 0.6.1 py37haa95532_0 tensorboard-plugin-wit 1.8.1 py37haa95532_0 tensorflow 2.0.0 eigen_py37hbfc5123_0 tensorflow-base 2.0.0 eigen_py37h01553b8_0 tensorflow-estimator 2.0.0 pyh2649769_0 termcolor 1.1.0 py37haa95532_1 terminado 0.17.1 py37haa95532_0 text-unidecode 1.3 pyhd3eb1b0_0 textdistance 4.2.1 pyhd3eb1b0_0 three-merge 0.1.1 pyhd3eb1b0_0 tinycss2 1.2.1 py37haa95532_0 tk 8.6.14 h0416ee5_0 toml 0.10.2 pyhd3eb1b0_0 tomli 2.0.1 py37haa95532_0 tomlkit 0.11.1 py37haa95532_0 tornado 6.2 py37h2bbff1b_0 tqdm 4.48.0 pyh9f0ad1d_0 conda-forge traitlets 5.7.1 py37haa95532_0 typed-ast 1.4.3 py37h2bbff1b_1 typing-extensions 4.4.0 py37haa95532_0 typing_extensions 4.4.0 py37haa95532_0 ucrt 10.0.20348.0 haa95532_0 ujson 5.4.0 py37hd77b12b_0 unidecode 1.2.0 pyhd3eb1b0_0 urllib3 1.26.14 py37haa95532_0 vc 14.2 h21ff451_1 vc14_runtime 14.38.33130 h82b7239_18 conda-forge vs2015_runtime 14.38.33130 hcb4865c_18 conda-forge watchdog 2.1.6 py37haa95532_0 wcwidth 0.2.5 pyhd3eb1b0_0 webencodings 0.5.1 py37_1 websocket-client 0.58.0 py37haa95532_4 werkzeug 0.16.1 py_0 whatthepatch 1.0.2 py37haa95532_0 wheel 0.38.4 py37haa95532_0 widgetsnbextension 3.5.2 py37haa95532_0 win_inet_pton 1.1.0 py37haa95532_0 wincertstore 0.2 py37haa95532_2 winpty 0.4.3 4 wrapt 1.14.1 py37h2bbff1b_0 xz 5.4.6 h8cc25b3_1 yaml 0.2.5 he774522_0 yapf 0.31.0 pyhd3eb1b0_0 yarl 1.8.1 py37h2bbff1b_0 zeromq 4.3.4 hd77b12b_0 zipp 3.11.0 py37haa95532_0 zlib 1.2.13 hcfcfb64_5 conda-forge zstd 1.5.5 hd43e919_2

When I run the Detection and Picking code it is giving this error .
2024-05-10 10:05:28.392182: I tensorflow/core/platform/cpu_feature_guard.cc:142] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX AVX2 05-10 10:06 [INFO] [EQTransformer] Loading is complete! 05-10 10:06 [INFO] [EQTransformer] C:\Users\csio\detections_new already exists! --> Type (Yes or y) to create a new empty directory! This will erase your previous results so make a copy if you want them.y 05-10 10:07 [INFO] [EQTransformer] There are files for 2 stations in downloads_mseeds_new directory. 05-10 10:07 [INFO] [EQTransformer] Started working on B921, 1 out of 2 ... 05-10 10:07 [INFO] [EQTransformer] 20190901T000000Z__20190902T000000Z.mseed

These are the errors coming

05-10 10:51 [DEBUG] [matplotlib.font_manager] findfont: score(FontEntry(fname='C:\Windows\Fonts\ERASDEMI.TTF', name='Eras Demi ITC', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 10.335 05-10 10:51 [DEBUG] [matplotlib.font_manager] findfont: score(FontEntry(fname='C:\Windows\Fonts\LTYPEBO.TTF', name='Lucida Sans Typewriter', style='oblique', variant='normal', weight=600, stretch='normal', size='scalable')) = 11.145 05-10 10:51 [DEBUG] [matplotlib.font_manager] findfont: score(FontEntry(fname='C:\Windows\Fonts\GOUDOSI.TTF', name='Goudy Old Style', style='italic', variant='normal', weight=400, stretch='normal', size='scalable')) = 11.335 05-10 10:51 [DEBUG] [matplotlib.font_manager] findfont: score(FontEntry(fname='C:\Windows\Fonts\calibriz.ttf', name='Calibri', style='italic', variant='normal', weight=700, stretch='normal', size='scalable')) = 11.05 05-10 10:51 [DEBUG] [matplotlib.font_manager] findfont: score(FontEntry(fname='C:\Windows\Fonts\trebucbi.ttf', name='Trebuchet MS', style='italic', variant='normal', weight=700, stretch='normal', size='scalable')) = 11.05 05-10 10:51 [DEBUG] [matplotlib.font_manager] findfont: score(FontEntry(fname='C:\Windows\Fonts\micross.ttf', name='Microsoft Sans Serif', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 10.335 05-10 10:51 [DEBUG] [matplotlib.font_manager] findfont: score(FontEntry(fname='C:\Windows\Fonts\constanb.ttf', name='Constantia', style='normal', variant='normal', weight=700, stretch='normal', size='scalable')) = 10.05 05-10 10:51 [DEBUG] [matplotlib.font_manager] findfont: score(FontEntry(fname='C:\Windows\Fonts\georgiaz.ttf', name='Georgia', style='italic', variant='normal', weight=700, stretch='normal', size='scalable')) = 11.05 05-10 10:51 [DEBUG] [matplotlib.font_manager] findfont: score(FontEntry(fname='C:\Windows\Fonts\BRLNSR.TTF', name='Berlin Sans FB', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 10.335 05-10 10:51 [DEBUG] [matplotlib.font_manager] findfont: score(FontEntry(fname='C:\Windows\Fonts\FORTE.TTF', name='Forte', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 10.335 05-10 10:51 [DEBUG] [matplotlib.font_manager] findfont: score(FontEntry(fname='C:\Windows\Fonts\calibril.ttf', name='Calibri', style='normal', variant='normal', weight=300, stretch='normal', size='scalable')) = 10.43 05-10 10:51 [DEBUG] [matplotlib.font_manager] findfont: score(FontEntry(fname='C:\Windows\Fonts\calibri.ttf', name='Calibri', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 10.335 05-10 10:51 [DEBUG] [matplotlib.font_manager] findfont: score(FontEntry(fname='C:\Windows\Fonts\TCCEB.TTF', name='Tw Cen MT Condensed Extra Bold', style='normal', variant='normal', weight=400, stretch='condensed', size='scalable')) = 10.535 05-10 10:51 [DEBUG] [matplotlib.font_manager] findfont: score(FontEntry(fname='C:\Windows\Fonts\YuGothB.ttc', name='Yu Gothic', style='normal', variant='normal', weight=700, stretch='normal', size='scalable')) = 10.05 05-10 10:51 [DEBUG] [matplotlib.font_manager] findfont: Matching sans-serif:style=normal:variant=normal:weight=bold:stretch=normal:size=10.0 to DejaVu Sans ('C:\Users\csio\anaconda3\envs\eqtn\lib\site-packages\matplotlib\mpl-data\fonts\ttf\DejaVuSans-Bold.ttf') with score of 0.050000.

File "C:\Users\csio\anaconda3\envs\eqtn\lib\site-packages\spyder_kernels\py3compat.py", line 356, in compat_exec exec(code, globals, locals)

File "c:\users\csio\untitled15.py", line 154, in overwrite=False,

File "C:\Users\csio\anaconda3\envs\eqtn\lib\site-packages\EQTransformer\core\mseed_predictor.py", line 322, in mseed_predictor _plotter_prediction(data_set[meta["trace_start_time"][ix]], args, save_figs, predD[ix][:, 0], predP[ix][:, 0], predS[ix][:, 0], meta["trace_start_time"][ix], matches)

File "C:\Users\csio\anaconda3\envs\eqtn\lib\site-packages\EQTransformer\core\mseed_predictor.py", line 1400, in _plotter_prediction fig.savefig(os.path.join(save_figs, str(evi)+'.png'))

File "C:\Users\csio\anaconda3\envs\eqtn\lib\site-packages\matplotlib\figure.py", line 3058, in savefig self.canvas.print_figure(fname, **kwargs)

File "C:\Users\csio\anaconda3\envs\eqtn\lib\site-packages\matplotlib\backend_bases.py", line 2325, in print_figure **kwargs)

File "C:\Users\csio\anaconda3\envs\eqtn\lib\site-packages\matplotlib\backend_bases.py", line 1648, in wrapper return func(*args, **kwargs)

File "C:\Users\csio\anaconda3\envs\eqtn\lib\site-packages\matplotlib_api\deprecation.py", line 415, in wrapper return func(*inner_args, **inner_kwargs)

File "C:\Users\csio\anaconda3\envs\eqtn\lib\site-packages\matplotlib\backends\backend_agg.py", line 543, in print_png dpi=self.figure.dpi, metadata=metadata, pil_kwargs=pil_kwargs)

File "C:\Users\csio\anaconda3\envs\eqtn\lib\site-packages\matplotlib\image.py", line 1675, in imsave image.save(fname, **pil_kwargs)

File "C:\Users\csio\anaconda3\envs\eqtn\lib\site-packages\PIL\Image.py", line 2428, in save fp = builtins.open(filename, "w+b")

OSError: [Errno 22] Invalid argument: 'C:\Users\csio\detections_new\B921_outputs\figures\2019-09-01 00:00:00.008300.png'

Please give me solution to this problem.