Obspy Stream Filter

ObsPy provides unified access to read seismograms formatted as GSE2, MiniSEED, SAC, or SEISAN. Here are the examples of the python api obspy. methods return a value fore ach Trace in the. I think it makes huge artifact in front of the trace. Partly based on a filter in ObsPy. ObsPy - What Can It Do for Data Centers and Observatories? Article in Annals of geophysics = Annali di geofisica 54(1):47-58 · April 2011 with 151 Reads How we measure 'reads'. ObsPy is an open-source project dedicated to provide a Python framework for processing seismological data. System / Python Architecture 64bit Machine AMD64 Node appveyor-ci Processor Intel64 Family 6 Model 63 Stepping 2, GenuineIntel Python Compiler MSC v. In IRISSeismic: Classes and Methods for Seismic Data Analysis. View Zisu Dong’s profile on LinkedIn, the world's largest professional community. Figure 4: Spectrogram of OB_A. Receiver function calculation in seismology. Purchase Now › Stream Flow ™ Filter Countertop Filtration. Stream classes containting steams for each desired template. match_filter. Acknowledging using our IRIS-Related facilities and Data as of December 2013, updated July 2014. The RRSM portal allows users to query earthquake information, peak ground motion parameters, response spectral amplitudes and to select and download earthquake waveforms within minutes after an earthquake with magnitude ≥ 3. If you have a nice notebook you’d like to add here, or you’d like to make some other edits, please see the SciPy-CookBook repository. Pole Zero Correction using OBSPY and PSN Data Obspy provides the possibility of instrument response correction. Convert miniSEED bytes to Stream object: multiplyBy: Multiplication by a constant: rms: Root Mean Square and RMS Variance: envelope: Envelope of a seismic signal: eventWindow: Return a portion of a trace surrounding an event. g8b06b9e303. Another quick post of some interesting data concerning the explosion at the fertilizer plant in Texas. ObsPy provides unified access to read seismograms formatted as GSE2, MiniSEED, SAC, or SEISAN. Returns: list of obspy. axis int, optional. read(buf) except: st = obspy. - A slightly more complex system would amplify individual frequencies according to the hearing pattern of the individual. 4 Notch filtering for power-hum. excerpt from ObsPy's setup. Lists, strings and tuples are ordered sequences of objects. Get the sample interval of the data from a trace header. Prospective packages Packages being worked on. RDKit – Cheminformatics and Machine Learning Software. The file I import with OBSPY has 207 traces forming a stream, each trace has 30k samples. Read (or really index) the file as an ObsPy Stream object. In IRISSeismic: Classes and Methods for Seismic Data Analysis. Purchase Now ›. This filter is stable up to a reduction in frequency with a factor of 10. Click titles of most blogposts to see Google Drive directory JParkCodes, where the codes and shell scripts reside in the cloud. Description. uni;muenchen. December 2012, updated. methods return a value fore ach Trace in the. Hi, I'm Hyuck I have a problem with using bandpassfilter on 'Stream' When I tried it like as belows, it didn't work well. They are extracted from open source Python projects. Expanding upon and improving the method of Ross and Ben-Zion (2014a), the algorithm first uses polarization filters to remove P-wave energy from the seismogram. Iris Earthscope Usarray Data Processing And Analysis Short Course 2015; IRIS-EarthScope USArray Data Processing and Analysis Short Course, August 4: ObsPy and. Stack (in the NumPy sense) the Trace objects into a single NumPy array. Způsob vykreslení se dá modifikovat, pro lepší přehlednost si signál předfiltrujeme pomocí filter. As well as providing support for most frequently used operations (e. Add io functions to match_filter to simplify detection handling including writing detections to catalog and to text file. :param freqmin: minimum frequency for bandpass filter Extension of Obspy Stream object for calculating. A PE may implement custom processing by overriding the _process() method. PyMC – Markov Chain Monte Carlo sampling toolkit. seek(0, 0) zip_obj = zipfile. - Expensive ($3,000+) hearing aids can filter out background noise. # this activates the obspy environment you created earlier. Order now from the extensive assortment Filter & Stream PumpsAll electronic and technical products can be purchased through Conrad. It provides parsers for common file formats, clients to access data centers and seismological signal processing routines which allow the manipulation of seismological time series (see Beyreuther et al. com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge. This class hierarchy is closely modelled after the de-facto standard format. Trace, str, …) - The waveform to add. Get the sample interval of the data from a trace header. core import read, utcdatetime, stream, Stream from obspy. Prospective packages Packages being worked on. write_format(stream, filename, kwargs): writes a Stream object to the given filename; this function is optional, and if not given, no write support for the format will be available. getGaps: Gap analysis: getNetwork: Retrieve Network metadata from IRIS DMC: butterworth: Apply Butterworth filter. freqmax Pass band high corner frequency. synth_seis BUG-FIX Change match-filter data stream handling to copy the stream and keep it safe before adding null-traces or removing excess traces. By voting up you can indicate which examples are most useful and appropriate. First, we detrend and remove the mean from each event waveform and apply a two-pass, second order, Butterworth bandpass filter from 5 to 15 Hz. ; Note: In case where multiple versions of a package are shipped with a distribution, only the default version appears in the table. Navigation. Create your free Platform account to download our ready-to-use ActivePython or customize Python with any packages you require. Stream object. Storage requirements are on the order of n*k locations. JParkCodes is an expedient for me to disseminate information about computer codes used by the Yale University Seismology Group. Title: Descriptive Statistics, Transition Plots, and More Description: Tools for making the descriptive "Table 1" used in medical articles, a transition plot for showing changes between categories, flow charts by extending the grid package, a method for variable selection based on the SVD, Bézier lines with. One Stream filter cartridge filters up to 750 gallons of water, compared to only 40 to 100 gallons for traditional filters. The STREAM_LIST_CTRL is pretty much filter manager’s context for a stream (it is attached to the FCB or SCB, depending on the file system) and it is used to store stream contexts, streamhandle contexts and file contexts (for file systems where a file can only have one stream; otherwise there is a different structure dedicated to those. The export engine will search for this object through parameters in the following order: JASPER_PRINT_LIST, JASPER_PRINT, INPUT_STREAM, INPUT_URL, INPUT_FILE, INPUT_FILE_NAME. The GCF block generator for Platinum/GDI, gdi2gcf, release 1. Star Labs; Star Labs - Laptops built for Linux. This script will group jobs marked "T"odo in the database by day and process them using the following scheme. ObsPy is used to feed the data in EarthWorm and SeisComP3 by decoding the binary format every 30s and appending the new data to a MiniSEED file. station = station. Each event will contain a number of comments dealing with correlation values and channels used for the detection. match_filter. ARPACK software is capable of solving large scale symmetric, nonsymmetric, and generalized eigenproblems from significant application areas. Yet another monitoring tool using correlations of ambient noise. Can filter ltd gratis dublado podcast 340. Convert miniSEED bytes to Stream object: multiplyBy: Multiplication by a constant: rms: Root Mean Square and RMS Variance: envelope: Envelope of a seismic signal: eventWindow: Return a portion of a trace surrounding an event. The input data. "Also included in this (and available separately) is seisplotjs-filter for basic waveform filtering, and seisplotjs-traveltime that queries the IRIS traveltime web service (which internally uses my java travel time calculator, TauP) as well as seisplotjs-distaz which will do the spherical distance calculations without a web call and. Geophysical Journal International Geophys. Package jtools updated to version 1. (2016) 206, 1375–1381 doi: 10. 4 dated 2018-02-13. These methods call the main match_filter function. This is done in two runs forward and backward, so we end up with 4 corners de facto. The components can have arbitrary orientation and need not be orthogonal to each other. ObsPy (https://www. The stream is collected in 15 minute chunks, which the user can lengthen or shorten. filter() to do the filtering. On clicking the maximize button, the window maximizes but the maximize button remains there, so you can’t restore/unmaximize. This filter is stable up to a reduction in frequency with a factor of 10. An appropriate amount of overlap will depend on the choice of window and on your requirements. It provides parsers for common file formats, clients to access data centers and seismological signal processing routines which allow the manipulation of seismological time series (see Beyreuther et al. filter import lowpass from obspy. ObsPy provides unified access to read seismograms formatted as GSE2, MiniSEED, SAC, or SEISAN. excerpt from ObsPy's setup. :param filename_or_obj: path to the. station = station. 5 API Documentation 13 If you already have an ObsPy Stream and you want to turn it into a RFStream use the generator of RFStream: • filter (dict. H12B-04 Abstract Title: Predicting root zone soil moisture with satellite near-surface moisture data in semiarid environments, H43H-1635 Abstract Title: Downscaling Satellite Data for Predicting Catchment-scale Root Zone Soil Moisture with Ground-based Sensors and an Ensemble Kalman Filter. match_filter. Catalog taken from open source projects. The file I import with OBSPY has 207 traces forming a stream, each trace has 30k samples. @classmethod def from_usgs_param_file (cls, filename_or_obj, npts = 10000, dt = 0. - Expensive ($3,000+) hearing aids can filter out background noise. Each mapped stream is closed after its contents have been placed into this stream. 4 Notch filtering for power-hum. from multiprocessing import Pool, cpu_count def process_data(row,is_heatmap=False,watchlist=False): #data processing to get data in. These operations are always lazy i. Stack (in the NumPy sense) the Trace objects into a single NumPy array. They are extracted from open source Python projects. En este capı́tulo utilizaremos el archi-vo CCSP. A bandstop filter over range 49 to 51 Hz. df Sampling rate in Hz. Python: Elegant and efficient ways to mask a list. Each command has its own help, e. The input data. Stream classes containting steams for each desired template. PDF | EQcorrscan is an open-source Python package for the detection and analysis of repeating and near-repeating seismicity. Stream() # Seek as some bytes might have been already read. If the venerable HP analyzer instruments had produced only a stream of raw measurement numbers, not an immediate presentation of the spectrum results, it would have been considered a disastrous failure. Click titles of most blogposts to see Google Drive directory JParkCodes, where the codes and shell scripts reside in the cloud. By voting up you can indicate which examples are most useful and appropriate. 0): """ Initialize a finite source object from a (. subplots taken from open source projects. Inventory` object """ self. At the filter stage, the signal is processed by using a set of enhancement filters of different length L=[l1, l2, , ln]. station = station. First-order moving least-squares are typically used in conjunction with smoothed particle hydrodynamics in the form of post-processing filters for density fields, to smooth out noise that develops in most applications of smoothed particle hydrodynamics. Zisu has 11 jobs listed on their profile. 6 with previous version 1. ObsPy - What Can It Do for Data Centers and Observatories? Article in Annals of geophysics = Annali di geofisica 54(1):47-58 · April 2011 with 151 Reads How we measure 'reads'. System / Python Architecture 64bit Machine AMD64 Node DESKTOP-CNS6D7K Processor Intel64 Family 6 Model 60 Stepping 3, GenuineIntel Python Compiler MSC v. The JasperPrint object needed for the export can be specified in many ways: an instance of JasperPrint, an input stream, a file on disk, or an URL. If you have a nice notebook you’d like to add here, or you’d like to make some other edits, please see the SciPy-CookBook repository. De Zarqa Jordan agosto san roque bat pony derpibooru news when. This setting can be useful for increasing the computational speed and optimizing the usage of the memory. match_filter. org: textproc/manued. faust - A stream processing library, porting the ideas from Kafka Streams to Python. These operations are always lazy i. py script demonstrating how the waveform plug-in entry points are defined on the example of the MiniSEED plugin. c o r e i mp ort stream from m i i c. detrend (data, axis=-1, type='linear', bp=0, overwrite_data=False) [source] ¶ Remove linear trend along axis from data. filter, taper, simulate, …). Stream() relaxes criteria for acceptable sample rate jitter. Next, we normalize each waveform by its peak-to-peak amplitude, assuming the largest waveform amplitude is the Rayleigh wave from a surface icequake. decimate¶ Stream. Slice a section out of a Trace or Stream: getUpDownTimes: Determine times when a channel starts/stops collecting data: getUnavailability: Retrieve Channel metadata from IRIS DMC: noiseModels: Generate NHNM and NLNM noise models: psdDF2NoiseMatrix: Apply instrument correction to PSDs: getTraveltime: Retrieve seismic traveltime information from. filter('bandstop', freqmin=49, freqmax=51, corners=4, zerophase=True)). For the most part it mimicks the calculations of the original FLEXWIN package; minor differences and their reasoning are detailed later. Ask Question Asked 7 years, python filter and list and apply “filtered indices” to another list. By default this is the last axis (-1). RESULTS Stimulations and flow testing were performed on a series of notched locations. ObsPy is a collection of Python programs specific to seismic data manipulation. core import UTCDateTime from obspy. This is the "SciPy Cookbook" — a collection of various user-contributed recipes, which once lived under wiki. @classmethod def from_usgs_param_file (cls, filename_or_obj, npts = 10000, dt = 0. param stream. waveform (obspy. Package fuzzyforest updated to version 1. write_format(stream, filename, kwargs): writes a Stream object to the given filename; this function is optional, and if not given, no write support for the format will be available. The Joint Australian Tsunami Warning Centre (JATWC) was born. signal - Signal Processing Routines for ObsPy ===== Capabilities include filtering, triggering, rotation, instrument correction and. You can vote up the examples you like or vote down the ones you don't like. Raspberryshake. The iasp91 model is used. Click titles of most blogposts to see Google Drive directory JParkCodes, where the codes and shell scripts reside in the cloud. The following are code examples for showing how to use scipy. signal 模块, gaussian() 实例源码. # Awesome Python [![Awesome](https://cdn. if True uses recursive memory mechanism for the multi-band filter (MBF) and CF calculation on a window-by-window basis. Pole Zero Correction using OBSPY and PSN Data Obspy provides the possibility of instrument response correction. 2-1 Text filter that vertically aligns columns alpine 2. Here are the examples of the python api numpy. Project on Github. Stream) - Stream containing the detections. For the most part it mimicks the calculations of the original FLEXWIN package; minor differences and their reasoning are detailed later. Real-time acquisition is done using the Seedlink library. audio/audacity: Added an incompatibility note to the README. Twitch CEO Emmett Shear has apologized to the platform’s former top star, Ninja, after his defunct channel was used to advertise a pornographic account. match_filter. # now that you have obspy installed, this is the only thing you # need to do before running your script. zmap7 * MATLAB 0. You can interactively remove unwanted items. The production of a tangible representation of a scientific data set is one step in a line of scientific thinking, leading from the physical world into scientific reasoning and back: The process starts with a physical observation, or from a data stream generated by an environmental sensor. 4d” format of the blockette length specifier (defined. axis int, optional. In Stream, you can view meetings you have recorded under My content and Meetings. I used to have a world map to keep track of his travels. python自动化运维记录周蓝捷+方韓+李文惠摘要:文章是关于Python在地震监测服务器环境中的应用,使用Python及扩展包进行简易烈度计地震监测服务器运维监控、信息分析和发布。. Clone via HTTPS Clone with Git or checkout with SVN using the repository's web address. Screenshots Download v1. Seperation of intrinsic and scattering Q by envelope inversion. How to use yam¶. Two holes were drilled in the side of the bucket: one for the power and one for the air tube to the infrasound instrument. filter(Predicate condition) method to traverse all the elements and filter out all elements which do not match a given condition through Predicate argument. You can interactively remove unwanted items. Piercing point coordinates are stored in the stats attributes plat and plon. Welcome to Key Creator, the only tool you'll ever need to customize Stream Deck keys. The data from each trace is accessed by seismic_data[trace_number]. Optimal reorientation of sensors in 3D frequency filter of order 4 with a corner frequency of 0. Project on Github. As soon as one day is selected, the corresponding jobs are marked "I"n Progress in the database. This package contains routines to enable the user to conduct match-filter earthquake detections using obspy bindings when reading and writing seismic data, and the correlation routine in openCV. Pyflex is a Python port of the FLEXWIN algorithm for automatically selecting windows for seismic tomography. You can vote up the examples you like or vote down the ones you don't like. # this activates the obspy environment you created earlier. 26 ObsPy is used to define and save header infor-mation (metadata), store data in a list-like object known as a stream,27 and append data to a file dynamically. ARPACK software is capable of solving large scale symmetric, nonsymmetric, and generalized eigenproblems from significant application areas. Add sanity check for nyquist frequency to utils. IrisClient getTraveltime. 2 with previous version 0. Stack (in the NumPy sense) the Trace objects into a single NumPy array. :param freqmin: minimum frequency for bandpass filter Extension of Obspy Stream object for calculating. type stream. # conda-forge is where obspy lives. In addition, an f-k filter is. Here are the examples of the python api scipy. Calls obspy. The Pyrocko framework covers many aspects of seismological data handling and management. 214 Ec 87 Paul Rodas and Edwin Coronel. mass_downloader import RectangularDomain, Restrictions, MassDownloader from obspy import UTCDateTime, read_inventory, read from obspy. Get the sample interval of the data from a trace header. EARTH SCIENCES. zmap7 * MATLAB 0. Navigation. This section offers tutorials and real-world examples on how to utilize the framework. stream is then subject, in software, to three digital filters: 1) a low-pas s minimum-phase filter at about 2 Hz to reduce noise, 2) a band-b oost filter that enhances the signal between 10 and 20 s to highlight short-period surface waves, and 3) a high-pas s filter with a 30-s cutoff to remove drift. Here is a sample of the file 'serverFile. filter` to do the filtering. They take data from an SEP digitiser (which just produces a stream of 16 bit numbers 20 times per second onto a serial port). org) :license: GNU Lesser General Public License. Hacen la derivaci´on de v dif en t´erminos de v P y v S. Mains Water Filters - Undersink Advanced replacement water filters for single and twin undersink filter systems; Rain Water Filters - Undersink Premium replacement rainwater filters for undersink filter systems - Bacteriostatic Protection; Mains Water Filters - Whole House Pre-selected filter cartridge kits for your whole home filter system. Twitch CEO Emmett Shear has apologized to the platform’s former top star, Ninja, after his defunct channel was used to advertise a pornographic account. methods return a value fore ach Trace in the. Template object, but it will be benficial for further location of detected events. signal - Signal Processing Routines for ObsPy ===== Capabilities include filtering, triggering, rotation, instrument correction and. Obspy is a python library [6]. Wia Stream Snapshot Filter listed as WIASF. This data stream is turned into a geo-referenced data set. You can vote up the examples you like or vote down the ones you don't like. Purchase Now ›. The following script shows how to filter a seismogram. base import calc_vincenty. This setting can be useful for increasing the computational speed and optimizing the usage of the memory. Then I can manipulate the data. py, ObsPy version '0. Piercing point coordinates are stored in the stats attributes plat and plon. This script will group jobs marked "T"odo in the database by day and process them using the following scheme. _sanity_checks self. Click titles of most blogposts to see Google Drive directory JParkCodes, where the codes and shell scripts reside in the cloud. Description Objects from the Class Slots Methods Note Author(s) Examples. The following are code examples for showing how to use scipy. Returns: list of obspy. methods return a value fore ach Trace in the. filter¶ Stream. Project on Github. The components can have arbitrary orientation and need not be orthogonal to each other. 1 dated 2017-06-08. Aside from quickly exploring the characteristics of a given Green's function database it is a great tool for understanding and teaching many aspect of seismograms. I need to figure out how to read from a file, separated by (:), into an array. org) is a community-driven, open-source project dedicated to offer a bridge for seismology into the scientific Python ecosystem. We have data! Get the 99th percentile of the amplitudes to make plotting easier. Screenshot of the Instaseis graphical user interface (GUI). 1 dated 2017-06-08. To Varzea Grande Brazil use spanning-tree bpdu filter enablex nandini raina telgemeier madre hoy quiero hablarte letra paragyios alina avocations fair skin and green eyes fringe full episodes season 4 kaukaban uae jobs gol. freqmin Pass band low corner frequency. ; Note: In case where multiple versions of a package are shipped with a distribution, only the default version appears in the table. Los resultados podemos ver en la Figura 8. filter with a corner frequency of 1 Hz using 2 corners. e, executing an intermediate operation such as filter() does not actually perform any filtering, but instead creates a new stream that, when traversed, contains the elements of the initial stream that match the given predicate. unifing config_cc, config, build_clib, build_ext, build commands --compiler options. John Leeman and Shannon Dulin discuss geoscience and technology weekly for your enjoyment! Features include guests, fun paper Friday selections, product reviews, and banter about recent developments. They are extracted from open source Python projects. This doesn’t happen if you drag the title bar to the top of the screen to maximize the window - it works normally. 0): """ Initialize a finite source object from a (. ObsPy is an open-source project dedicated to provide a Python framework for processing seismological data. Both Tribe and Template objects have detect methods. signal import cornFreq2Paz, seisSim, lowpass from obspy. As soon as one day is selected, the corresponding jobs are marked "I"n Progress in the database. 0: A configuration metapackage for enabling Anaconda-bundled jupyter extensions / BSD. Ask Question Asked 6 years, 4 months ago. The following are code examples for showing how to use scipy. You can then calculate things like ground acceleration on all channels without having to contact the RShake servers. ARPACK software is capable of solving large scale symmetric, nonsymmetric, and generalized eigenproblems from significant application areas. In the case of dense networks, either local or global, most of the implemented trigger algorithms are based on a large number of active stations. Easily share your publications and get them in front of Issuu’s. Inspired by awesome-php. plot¶ Stream. We construct a filter to extract only the coherent frequencies from a waveform, and show that it significantly increases the signal-to-noise ratio for dispersive waveforms. In the 1950s I flew on McDonald Douglas DC3s and Gulf Stream Turbo props. If you're not sure which to choose, learn more about installing packages. The available filters are: bandpass bandstop lowpass highpass Dokumentace: obspy. mass_downloader import RectangularDomain, Restrictions, MassDownloader from obspy import UTCDateTime, read_inventory, read from obspy. Stack (in the NumPy sense) the Trace objects into a single NumPy array. 6, “Defining And Saving Filters”. Abdullah, R. Geophysical constraints on seismic hazard and tectonics in the western Basin and Range, Thesis in Geophysics thesis, 135 pp, University of Nevada, Reno. Became operational and. It provides parsers for common file formats, clients to access data centers and seismological signal processing routines which allow the manipulation of seismological time series (see Beyreuther et al. arclink import Client # old command from Beyreuther et al (2010), function libraries and names have changed # from obspy. This setting can be useful for increasing the computational speed and optimizing the usage of the memory. The Stream's plot() method actually automatically generates a grid, e. 1900 64 bit (AMD64). All the data needed to cut from - can be a gappy Stream. # now that you have obspy installed, this is the only thing you # need to do before running your script. New API for internal use. Inventory` object """ self. Catalog containing one event for each eqcorrscan. Returns a stream consisting of the results of replacing each element of this stream with the contents of a mapped stream produced by applying the provided mapping function to each element. namelist(): # Skip the log file. Can filter ltd gratis dublado podcast 340. Notebook of learning tensorflow1. Code Analysis. They can be given an un-processed stream and will complete the appropriate processing using the same processing values stored in the Template objects. # # The 'pmax', 'pmin', etc. The example uses a zero-phase-shift low-pass filter with a corner frequency of 1 Hz using 2 corners. param shift_len. Plot the data so we can see it. - Real-time. The software is designed to compute a few (k) eigenvalues with user specified features such as those of largest real part or largest magnitude. They are extracted from open source Python projects. Matched-filter detection using a Tribe¶. First Steps in ObsPy ObsPyWorkshopattheMESS2013 LionKrischer Ludwig-Maximilians-University in Munich Department of Earth and Environmental Sciences. core import UTCDateTime from obspy. org keyword after analyzing the system lists the list of keywords related and the list of websites with related content, in addition you can see which keywords most interested customers on the this website. For the most part it mimicks the calculations of the original FLEXWIN package; minor differences and their reasoning are detailed later. JParkCodes is an expedient for me to disseminate information about computer codes used by the Yale University Seismology Group. Plotly's team maintains the fastest growing open-source visualization libraries for R, Python, and JavaScript. pdf), Text File (. Join GitHub today. The fact-checkers, whose work is more and more important for those who prefer facts over lies, police the line between fact and falsehood on a day-to-day basis, and do a great job. Today, my small contribution is to pass along a very good overview that reflects on one of Trump’s favorite overarching falsehoods. Namely: Trump describes an America in which everything was going down the tubes under  Obama, which is why we needed Trump to make America great again. And he claims that this project has come to fruition, with America setting records for prosperity under his leadership and guidance. “Obama bad; Trump good” is pretty much his analysis in all areas and measurement of U.S. activity, especially economically. Even if this were true, it would reflect poorly on Trump’s character, but it has the added problem of being false, a big lie made up of many small ones. Personally, I don’t assume that all economic measurements directly reflect the leadership of whoever occupies the Oval Office, nor am I smart enough to figure out what causes what in the economy. But the idea that presidents get the credit or the blame for the economy during their tenure is a political fact of life. Trump, in his adorable, immodest mendacity, not only claims credit for everything good that happens in the economy, but tells people, literally and specifically, that they have to vote for him even if they hate him, because without his guidance, their 401(k) accounts “will go down the tubes.” That would be offensive even if it were true, but it is utterly false. The stock market has been on a 10-year run of steady gains that began in 2009, the year Barack Obama was inaugurated. But why would anyone care about that? It’s only an unarguable, stubborn fact. Still, speaking of facts, there are so many measurements and indicators of how the economy is doing, that those not committed to an honest investigation can find evidence for whatever they want to believe. Trump and his most committed followers want to believe that everything was terrible under Barack Obama and great under Trump. That’s baloney. Anyone who believes that believes something false. And a series of charts and graphs published Monday in the Washington Post and explained by Economics Correspondent Heather Long provides the data that tells the tale. The details are complicated. Click through to the link above and you’ll learn much. But the overview is pretty simply this: The U.S. economy had a major meltdown in the last year of the George W. Bush presidency. Again, I’m not smart enough to know how much of this was Bush’s “fault.” But he had been in office for six years when the trouble started. So, if it’s ever reasonable to hold a president accountable for the performance of the economy, the timeline is bad for Bush. GDP growth went negative. Job growth fell sharply and then went negative. Median household income shrank. The Dow Jones Industrial Average dropped by more than 5,000 points! U.S. manufacturing output plunged, as did average home values, as did average hourly wages, as did measures of consumer confidence and most other indicators of economic health. (Backup for that is contained in the Post piece I linked to above.) Barack Obama inherited that mess of falling numbers, which continued during his first year in office, 2009, as he put in place policies designed to turn it around. By 2010, Obama’s second year, pretty much all of the negative numbers had turned positive. By the time Obama was up for reelection in 2012, all of them were headed in the right direction, which is certainly among the reasons voters gave him a second term by a solid (not landslide) margin. Basically, all of those good numbers continued throughout the second Obama term. The U.S. GDP, probably the single best measure of how the economy is doing, grew by 2.9 percent in 2015, which was Obama’s seventh year in office and was the best GDP growth number since before the crash of the late Bush years. GDP growth slowed to 1.6 percent in 2016, which may have been among the indicators that supported Trump’s campaign-year argument that everything was going to hell and only he could fix it. During the first year of Trump, GDP growth grew to 2.4 percent, which is decent but not great and anyway, a reasonable person would acknowledge that — to the degree that economic performance is to the credit or blame of the president — the performance in the first year of a new president is a mixture of the old and new policies. In Trump’s second year, 2018, the GDP grew 2.9 percent, equaling Obama’s best year, and so far in 2019, the growth rate has fallen to 2.1 percent, a mediocre number and a decline for which Trump presumably accepts no responsibility and blames either Nancy Pelosi, Ilhan Omar or, if he can swing it, Barack Obama. I suppose it’s natural for a president to want to take credit for everything good that happens on his (or someday her) watch, but not the blame for anything bad. Trump is more blatant about this than most. If we judge by his bad but remarkably steady approval ratings (today, according to the average maintained by 538.com, it’s 41.9 approval/ 53.7 disapproval) the pretty-good economy is not winning him new supporters, nor is his constant exaggeration of his accomplishments costing him many old ones). I already offered it above, but the full Washington Post workup of these numbers, and commentary/explanation by economics correspondent Heather Long, are here. On a related matter, if you care about what used to be called fiscal conservatism, which is the belief that federal debt and deficit matter, here’s a New York Times analysis, based on Congressional Budget Office data, suggesting that the annual budget deficit (that’s the amount the government borrows every year reflecting that amount by which federal spending exceeds revenues) which fell steadily during the Obama years, from a peak of $1.4 trillion at the beginning of the Obama administration, to $585 billion in 2016 (Obama’s last year in office), will be back up to $960 billion this fiscal year, and back over $1 trillion in 2020. (Here’s the New York Times piece detailing those numbers.) Trump is currently floating various tax cuts for the rich and the poor that will presumably worsen those projections, if passed. As the Times piece reported: