text:
Iraq seeks talks, goes to war alert
By - The Washington Times - Sunday, March 16, 2003
BAGHDAD Iraq yesterday invited the two chief U.N. weapons inspectors back to Baghdad to discuss unsettled disarmament issues, even as President Bush prepared to meet today with top allies about a likely war.
Iraqi leader Saddam Hussein also placed his nation on an official war footing, issuing a decree dividing Iraq into four military regions under the command of his most trusted lieutenants.
Saddam placed a son, Qusai, in charge of his regime's heartland, Baghdad, and his hometown, Tikrit.
Saddam retained sole authority to use aircraft and surface-to-surface missiles against invaders, according to the presidential decree distributed by the Iraqi News Agency.
Iraq's invitation to chief U.N. weapons inspectors Hans Blix and Mohamed ElBaradei came on the eve of Mr. Bush's emergency meeting with Prime Ministers Tony Blair of Britain and Jose Maria Aznar of Spain on a Portuguese island in the eastern Atlantic. The three allied leaders' agenda: to work out their next steps as the U.N. Security Council blocks their bid to give Iraq an ultimatum to fully disarm or face war.
At U.N. headquarters in New York, Mr. Blix said he would study Saddam's invitation and discuss it with the Security Council. Asked if the Iraqi move was a stunt, he told CNN: "I certainly wouldn't call it a stunt. … We'll have to give serious thought to what the answer will be."
A U.S. official, speaking on condition of anonymity, said the chief inspectors "would be wise to wait until after the summit before making any determination about going to Baghdad."
With nearly 250,000 U.S. and British troops in the Persian Gulf ready to strike, Iraq was emboldened by stiff opposition to war at the Security Council, where France and other nations insist inspectors should be given more time to determine the status of Iraq's chemical, biological and nuclear weapons. As pressure on Baghdad increased in recent months, Saddam made gestures to show his regime is cooperating.
France, Russia and Germany issued a joint statement yesterday insisting there was no reason for war but calling for foreign ministers to meet this week at the Security Council to set a disarmament timetable.
French Foreign Minister Dominique de Villepin said his country would accept a "tight" timetable but not an ultimatum that could automatically trigger war as the United States, Britain and Spain sought. Still, he acknowledged war was becoming inevitable. "It is difficult to imagine what could stop this machine," he told France 2 television.
Tomorrow, Mr. Blix is to present the Security Council with plans for upcoming inspections. He has said that Baghdad is showing more "proactive" cooperation, but the United States and its allies insist Saddam is deceiving inspectors.
Eight U.S. warships yesterday crossed the Mediterranean and entered the Red Sea to join the military buildup.
Mr. Blix and Mr. ElBaradei have visited Baghdad two times since the United Nations resumed weapons inspections in Iraq in November after a four-year break. Each time they pressed the Iraqis for greater cooperation. Iraq contends it no longer has weapons of mass destruction.
Iraq's Foreign Ministry said Saddam's science adviser, Lt. Gen. Amer al-Saadi the point man on disarmament invited the two chief inspectors to come to Baghdad at the "earliest suitable date" to discuss "means to speed up joint cooperation … in all fields, especially facilitating the verification process of issues considered outstanding by Blix and ElBaradei."
The letter of invitation said Iraq achieved "noted progress" on issues mentioned in a March 6 letter by UNMOVIC, the U.N. agency mandated to search for any signs of weapons of mass destruction, according to the ministry statement. It gave no details.
The inspectors are demanding that Iraq address unanswered disarmament questions particularly that it account for stocks of anthrax and VX nerve gas it claims to have destroyed in the early 1990s, without offering documentation.
Mr. Blix received a 25-page letter from Iraq late Friday on the VX nerve agent. Parts of the letter in Arabic will have to be translated and studied to determine what is new and, if so, whether it helps to resolve outstanding issues, said Mr. Blix's spokesman, Ewen Buchanan.
Iraq promised a letter on anthrax as well, but Mr. Buchanan made no mention of that.
Iraqi authorities also gave inspectors the names of 183 more scientists involved in chemical weapons programs, U.N. spokesman Hiro Ueki said yesterday.
That brings the total number of names submitted by Baghdad to 315. The U.N. team has requested interviews with 325 persons, seeking information about secret programs or undocumented weapon destruction.
U.N. weapons inspectors yesterday oversaw the destruction of three banned Iraqi missiles at a military site north of Baghdad, Mr. Ueki said. A missile launcher also was destroyed. The Iraqis so far have crushed 68 Al Samoud 2 missiles, out of an estimated 150.


This is a placeholder page for Jackie Evanisky, which means this person is not currently on this site. We do suggest using the tools below to find Jackie Evanisky.
You are visiting the placeholder page for Jackie Evanisky. This page is here because someone used our placeholder utility to look for Jackie Evanisky. We created this page automatically in hopes Jackie Evanisky would find it. If you are not Jackie Evanisky, but are an alumni of Riverside High School Buffalo, NY, register on this site for free now.


text:
The Office of Attorney General William Tong
Attorney General William Tong
Current: Attorney General Tong Welcomes Comcast Decision to Postpone Data Cap Rate Hike Until 2022
Search Office of the Attorney General
Attorney General Tong Welcomes Comcast Decision to Postpone Data Cap Rate Hike Until 2022
Attorney General Tong Had Strongly Objected to Plan and Sought Delay
(Hartford, CT) – Attorney General William Tong issued a statement welcoming Comcast's announcement today that they will postpone their ill-timed data cap until 2022. Attorney General Tong had strongly objected to implementing the rate hike in the midst of the ongoing public health and economic crisis.
"Delaying this ill-timed data cap until at least 2022 is the right call. I have heard from families across Connecticut who easily exceeded this cap while studying and working remotely. Far from so-called superusers, these were stories from typical Connecticut families merely trying to stay employed and educate their children during a global pandemic. To raise rates on these families at the very moment they were most reliant on broadband access and least able to pay more was simply unconscionable," said Attorney General Tong. "I thank Comcast leadership for their willingness to listen and compromise, and for keeping lines of communication open with my office over these past several months of discussions. I will continue to monitor this matter closely to ensure all consumers are treated fairly."
Comcast had announced a plan to charge an additional $10 for each 50 GB increment of data customers use above the 1.2 TB cap, up to as much as $100 per month. The plan was initially set to go into effect in March. Under pressure from Attorney General Tong and others, Comcast first agreed to delay the plan until July. The plan will now be postponed until 2022.
Attorney General Tong had been engaged in discussions with Comcast leadership over the past month in the hopes of convincing the company to reconsider the cap. He wrote a letter last month seeking information from the company and urging them to reconsider implementing the cap.
Twitter: @AGWilliamTong
Facebook: CT Attorney General
Elizabeth Benton
elizabeth.benton@ct.gov
Consumer Inquiries:
attorney.general@ct.gov

redpajama_set_name: RedPajamaCommonCrawl


The Smart Surveillance Interest Group started early this month the execution of a R&D project as a partnership with Maxtrack, a Minas Gerais based company leader in vehicle tracking and telemetry, through EMBRAPII DCC/UFMG. The project main focus is the development of algorithms based on computer vision and machine learning for video analytics considering Internet of Things (IoT) scenarios. Several problems in the surveillance and biometric domains will be addressed in this project, including vehicle recognition and person detection, tracking, and identification, research topics studied by the Smart Surveillance Interest Group.
The development of this R&D project will contribute to the Smart Surveillance Interest Group achieve one of its goals – bridge the gap between academic research and practical applications to foster new technologies to generate benefits to society.


text:
Fulltide
7 states show decrease in rainfall in last 30 years: Report
Editor Water Today
As per the report Observed Rainfall Variability and Changes, seven states-- Uttar Pradesh, Bihar, West Bengal, Himachal Pradesh, Arunachal Pradesh, Meghalaya and Nagaland-- have shown significant decreasing trends in annual rainfall in the last 30 years and many parts of the country witnessed increase in number of dry days during the monsoon season which adversely affected groundwater recharges in these regions. The changing rainfall pattern is attributed to climate change and global warming. In its recommendations, the committee with whom the report was shared suggested a need to explore 'monetisation of data and information' through a well-thought out policy.
© magazine-watertoday 2021
Water Today | Magazine
magazine.watertoday.org


text:
from __future__ import division
import matplotlib.pyplot as plt
import matplotlib.cm as cm
import pandas as pd

import numpy as np

from .analysis import reshape_timeseries, clean_convert, get_LDC

__all__ = ['plot_heatmap', 'plot_3d', 'plot_percentiles', 'plot_rug', 'plot_boxplot', 'plot_LDC' ]

def plot_heatmap(Load, x='dayofyear', y='hour', aggfunc='sum', bins=8,
                figsize=(16,6), edgecolors='none', cmap='Oranges', colorbar=True, ax=None, **pltargs):
    """ Returns a 2D heatmap of the reshaped timeseries based on x, y

    Arguments:
        Load: 1D pandas with timed index
        x: Parameter for :meth:`enlopy.analysis.reshape_timeseries`
        y: Parameter for :meth:`enlopy.analysis.reshape_timeseries`
        bins: Number of bins for colormap
        edgecolors: colour of edges around individual squares. 'none' or 'w' is recommended.
        cmap: colormap name (from colorbrewer, matplotlib etc.)
        **pltargs: Exposes matplotlib.plot arguments
    Returns:
        2d heatmap
    """
    x_y = reshape_timeseries(Load, x=x, y=y, aggfunc=aggfunc)
    if ax is None:
        fig, ax = plt.subplots(figsize=figsize)

    cmap_obj = cm.get_cmap(cmap, bins)
    heatmap = ax.pcolor(x_y, cmap=cmap_obj, edgecolors=edgecolors, **pltargs)
    if colorbar:
        fig.colorbar(heatmap)
    ax.set_xlim(right=len(x_y.columns))
    ax.set_ylim(top=len(x_y.index))
    ax.set_xlabel(x)
    ax.set_ylabel(y)

def plot_3d(Load, x='dayofyear', y='hour', aggfunc='sum', bins=15,
           cmap='Oranges', colorbar=True, **pltargs):
    """ Returns a 3D plot of the reshaped timeseries based on x, y

    Arguments:
        Load: 1D pandas with timed index
        x: Parameter for :meth:`enlopy.analysis.reshape_timeseries`
        y: Parameter for :meth:`enlopy.analysis.reshape_timeseries`
        bins: Number of bins for colormap
        cmap: colormap name (from colorbrewer, matplotlib etc.)
        **pltargs: Exposes :meth:`matplotlib.pyplot.surface` arguments
    Returns:
        3d plot
    """
    import mpl_toolkits.mplot3d  # necessary for orojection=3d

    x_y = reshape_timeseries(Load, x=x, y=y, aggfunc=aggfunc)

    fig = plt.figure(figsize=(12, 6))
    ax = fig.add_subplot(111, projection='3d')
    cmap_obj = cm.get_cmap(cmap, bins)
    X, Y = np.meshgrid(range(len(x_y.columns)), range(len(x_y.index)))
    surf = ax.plot_surface(X, Y, x_y, cmap=cmap_obj, rstride=1, cstride=1,
                           shade=False, antialiased=True, lw=0, **pltargs)
    if colorbar:
        fig.colorbar(surf)
    # Set viewpoint.
    # ax.azim = -130
    ax.elev = 45
    ax.auto_scale_xyz([0, len(x_y.columns)],
                      [0, len(x_y.index)],
                      [0, x_y.max().max()])
    ax.set_xlabel(x)
    ax.set_ylabel(y)

def plot_percentiles(Load, x='hour', zz='week', perc_list=[[5, 95], [25, 75], 50], ax=None, color='blue', **kwargs):
    """Plot predefined percentiles per timestep

    Arguments:
        Load: 1D pandas with timed index
        x (str): x axis aggregator. See :meth:`enlopy.analysis.reshape_timeseries`
        zz (str): similar to above for y axis
        perc_list(list): List of percentiles to plot. If it is an integer then it will be plotted as a line. If it is list it has to contain two items and it will be plotted using fill_between()
        **kwargs: exposes arguments of :meth:`matplotlib.pyplot.fill_between`
    Returns:
        Plot

    """
    if ax is None: # Hack for nice jupyter notebook compatibility
        ax=plt.gca()
    a = reshape_timeseries(Load, x=x, y=zz, aggfunc='mean')
    xx = a.columns.values

    # TODO: s 2s 3s instead of percentiles

    for i in perc_list:
        if len(np.atleast_1d(i)) == 1:
            perc = a.apply(lambda x: np.nanpercentile(x.values, i), axis=0)
            ax.plot(xx, perc.values, color='black')
        elif len(np.atleast_1d(i)) == 2:
            perc0 = a.apply(lambda x: np.nanpercentile(x.values, i[0]), axis=0)
            perc1 = a.apply(lambda x: np.nanpercentile(x.values, i[1]), axis=0)

            ax.fill_between(xx, perc0, perc1, lw=.5, alpha=.3, color=color, **kwargs)
        else:
            raise ValueError('List items should be scalars or 2-item lists')

    ax.set_xlim(left=min(xx), right=max(xx))
    ax.set_xlabel(x)

def plot_boxplot(Load, by='day', **pltargs):
    """Return boxplot plot for each day of the week

    Arguments:
        Load (pd.Series): 1D pandas Series with timed index
        by (str): group results by 'day' or 'hour'
        **pltargs (dict): Exposes :meth:`matplotlib.pyplot.plot` arguments
    Returns:
        plot
    """
    Load = clean_convert(Load,force_timed_index=True)

    if by == 'day':
        grp = Load.groupby(Load.index.weekday)
        labels = "Mon Tue Wed Thu Fri Sat Sun".split()
    elif by == 'hour':
        grp = Load.groupby(Load.index.hour)
        labels = np.arange(0, 24)
    else:
        raise NotImplementedError('Only "day" and "hour" are implemented')
    a = []
    for __, value in grp:
        a.append(value)
    plt.boxplot(a, labels=labels, **pltargs)
    # TODO : Generalize to return monthly, hourly etc.
    # TODO Is it really needed? pd.boxplot()

def plot_LDC(Load, stacked=True, x_norm=True, y_norm=False, cmap='Spectral', color='black',
             legend=False, zoom_peak=False, ax=None, **kwargs):
    """Plot Load duration curve

    Arguments:
        Load (pd.Series): 1D pandas Series with timed index
        x_norm (bool): Normalize x axis (0,1)
        y_norm (bool): Normalize y axis (0,1)
        color (str): color of line. For Series only (1D)
        cmap (str): Colormap of area. For Dataframes only (2D)
        legend (bool): Show legend. For Dataframes only (2D)
        zoom_peak (bool): Show zoomed plot of peak
        kwargs (dict): exposes arguments of pd.DataFrame.plot.area
    Returns:
        Load duration curve plot
    """
    if ax is None:
        __ = plt.figure(1)
        ax_main = plt.axes()
    else:
        ax_main = ax

    if Load.ndim >= 2:
        if stacked:
            x, y = get_LDC(Load, x_norm=x_norm, y_norm=y_norm)
            # Reconverting to Dataframe as pd.plot.area is much more robust than plt.stackplot

            ldc_frame = pd.DataFrame(y, index=x, columns=Load.columns)
            y_max = np.nanmax(np.nansum(ldc_frame, axis=1))
            if y_norm: # We need to renormalize cause the sum of columns is more than 1.0
                ldc_frame = ldc_frame/ y_max
            if (ldc_frame<0).any(axis=None): # TODO: Can we stack negative values?
                raise ValueError('Cannot plot stacked area with negative values. Try stacked=False instead')
            ldc_frame.plot.area(cmap=cmap, lw=0, legend=legend, ax=ax_main, **kwargs)
        else:
            for __, v in Load.items():
                x, y = get_LDC(v, x_norm=x_norm, y_norm=y_norm)
                ax_main.plot(x, y, color=color, **kwargs)
            y_max = np.nanmax(y)
    else:
        x, y = get_LDC(Load, x_norm=x_norm, y_norm=y_norm)
        ax_main.plot(x, y, color=color)
        y_max = np.nanmax(y)

    # Set axes labels
    ax_x_min = np.min(x)
    if x_norm:
        ax_x_max = 1
        xlabel = 'Normalized duration'
    else:
        ax_x_max = len(y)
        xlabel = 'Duration'
    if y_norm:
        ax_y_max = 1
        ylabel = 'Normalized Power'
    else:
        ax_y_max = y_max
        ylabel = 'Power'

    ax_main.set_xlim(ax_x_min, ax_x_max)
    ax_main.set_xlabel(xlabel)
    ax_main.set_ylim(0, ax_y_max * 1.01)
    ax_main.set_ylabel(ylabel)
    # Draw inset plot
    if zoom_peak:
        from mpl_toolkits.axes_grid1.inset_locator import zoomed_inset_axes, mark_inset
        axins = zoomed_inset_axes(ax_main, 2.5, loc=1)
        if y.ndim >= 2:
            ldc_frame.plot.area(cmap=cmap, lw=0, legend=False, ax=axins, **kwargs)
        else:
            axins.plot(x, y, color=color)
        axins.set_xlim([ax_x_min, 0.15 * ax_x_max]) #TODO: Estimate x axis limits based on plotted values
        axins.set_ylim([0.8 * ax_y_max, ax_y_max])
        axins.get_xaxis().set_ticks([])
        axins.get_yaxis().set_ticks([])
        mark_inset(ax_main, axins, loc1=1, loc2=3, fc="none", ec="0.5")

def plot_rug(df_series, on_off=False, cmap='Greys', fig_title='', fig_width=14, normalized=False):
    """Create multiaxis rug plot from pandas Dataframe

    Arguments:
        df_series (pd.DataFrame): 2D pandas with timed index
        on_off (bool): if True all points that are above 0 will be plotted as one color. If False all values will be colored based on their value.
        cmap (str): colormap name (from colorbrewer, matplotlib etc.)
        fig_title (str): Figure title
        normalized (bool): if True, all series colormaps will be normalized based on the maximum value of the dataframe
    Returns:
        plot
    """
    def format_axis(iax):
        # Formatting: remove all lines (not so elegant)
        for spine in ['top','right','left','bottom']:
            iax.axes.spines[spine].set_visible(False)
            #iax.spines['right'].set_visible(False)

        # iax.xaxis.set_ticks_position('none')
        iax.yaxis.set_ticks_position('none')
        iax.get_yaxis().set_ticks([])
        iax.yaxis.set_label_coords(-.05, -.1)

    def flag_operation(v):
        if np.isnan(v) or v == 0:
            return False
        else:
            return True

    # check if Series or dataframe
    if isinstance(df_series, pd.DataFrame):
        rows = len(df_series.columns)
    elif isinstance(df_series, pd.Series):
        df_series = df_series.to_frame()
        rows = 1
    else:
        raise ValueError("Has to be either Series or Dataframe")
    if len(df_series) < 1:
        raise ValueError("Has to be non empty Series or Dataframe")

    max_color = np.nanmax(df_series.values)
    min_color = np.nanmin(df_series.values)

    __, axes = plt.subplots(nrows=rows, ncols=1, sharex=True,
                             figsize=(fig_width, 0.25 * rows), squeeze=False,
                             frameon=False, gridspec_kw={'hspace': 0.15})

    for (item, iseries), iax in zip(df_series.iteritems(), axes.ravel()):
        format_axis(iax)
        iax.set_ylabel(str(item)[:30], rotation='horizontal',
                       rotation_mode='anchor',
                       horizontalalignment='right', x=-0.01)
        x = iseries.index

        if iseries.sum() > 0:  # if series is not empty
            if on_off:
                i_on_off = iseries.apply(flag_operation).replace(False, np.nan)
                i_on_off.plot(ax=iax, style='|', lw=.7, cmap=cmap)
            else:
                y = np.ones(len(iseries))
                #Define (truncated) colormap:
                if not normalized:  # Replace max_color (frame) with series max
                    max_color = np.nanmax(iseries.values)
                    min_color = np.nanmin(iseries.values)
                # Hack to plot max color when all series are equal
                if np.isclose(min_color, max_color):
                    min_color = min_color * 0.99

                iax.scatter(x, y,
                            marker='|', s=100,
                            c=iseries.values,
                            vmin=min_color,
                            vmax=max_color,
                            cmap=cmap)

    axes.ravel()[0].set_title(fig_title)
    axes.ravel()[-1].spines['bottom'].set_visible(True)
    axes.ravel()[-1].set_xlim(np.min(x), np.max(x))

def plot_line_holidays():
    #ax.vspan if day == holiday
    #should work only with daily
    pass

def describe_load(Load):
    """Summary plot that describes the most important features of the passed timeseries """
    pass

redpajama_set_name: RedPajamaGithub