示例#1
0
def get_full_hierarchy_from_tsn(tsn, as_dataframe=True, include_children=True,
                                **kwargs):
    """
        Returns a list of items from the ITIS getFullHierarchyFromTSN function.
        The resulting pandas dataframe or list of dictionaries contains
         the tsn, as well as common name

    Parameters
    ----------
    tsn : int
        The ITIS taxonomic serial number to query

    as_dataframe : bool
        if True return pandas dataframe, if False return list of dictionaries

    include_children : bool
        flag to optionally return the child taxonomies of the given taxon

    Returns
    -------
        pandas dataframe or list of dictionaries with common names and tsns
    """
    results = _get_xml(ITIS_BASE_URL + 'getFullHierarchyFromTSN',
                       payload={'tsn': tsn})
    hierarchy = results.xpath('//ax21:hierarchyList', namespaces=NS21)
    if as_dataframe and pd:
        df = xml_utils.element_to_df(hierarchy)
        if not include_children:
            df = df[df.parentTsn!=str(tsn)]
        return df
    else:
        d = xml_utils.element_to_list(hierarchy)
        if not include_children:
            d = [r for r in d if r['parentTsn'] != str(tsn)]
        return d
示例#2
0
def search_by_scientific_name(scientific_name, as_dataframe=True, **kwargs):
    """
        Returns a list of items from the ITIS searchByCommonName function.
        The resulting pandas dataframe or list of dictionaries contains
         the tsn, as well as common name

    Parameters
    ----------
    scientific_name : str
        The string to match on

    as_dataframe : bool
        if True return pandas dataframe, if False return list of dictionaries

    Returns
    -------
        pandas dataframe or list of dictionaries with scientific_names and tsns
    """
    results = _get_xml(ITIS_BASE_URL + 'searchByScientificName',
                       payload={'srchKey': scientific_name})
    scientific_names = results.xpath('//ax21:scientificNames', namespaces=NS21)
    if as_dataframe and pd:
        return xml_utils.element_to_df(scientific_names)
    else:
        return xml_utils.element_to_list(scientific_names)
示例#3
0
def get_full_record_from_tsn(tsn, as_dataframe=False, **kwargs):
    """
        Returns a list of items from the ITIS getFullHierarchyFromTSN function.
        The resulting pandas dataframe or list of dictionaries contains
         the tsn, as well as common name

    Parameters
    ----------
    tsn : int
        The ITIS taxonomic serial number to query

    as_dataframe : bool
        if True return pandas dataframe, if False return list of dictionaries

    Returns
    -------
        pandas dataframe or list of dictionaries with common names and tsns
    """

    results = _get_xml(ITIS_BASE_URL + 'getFullRecordFromTSN',
                       payload={'tsn': tsn}).getchildren()[0]
    if as_dataframe:
        dfs = collections.OrderedDict()
        for child in results.getchildren():
            df = xml_utils.element_to_df([child]).dropna()
            dfs[xml_utils._parse_tag(child.tag)] = df
        return dfs
    else:
        return xml_utils.node_to_dict(results, add_fgdc=False)
示例#4
0
def get_common_names_tsn(tsn, as_dataframe=True, **kwargs):
    """
        Returns a list of items from the ITIS getFullHierarchyFromTSN function.
        The resulting pandas dataframe or list of dictionaries contains
         the tsn, as well as common name

    Parameters
    ----------
    tsn : int
        The ITIS taxonomic serial number to query

    as_dataframe : bool
        if True return pandas dataframe, if False return list of dictionaries

    Returns
    -------
        pandas dataframe or list of dictionaries with common names and tsns
    """
    results = _get_xml(ITIS_BASE_URL + 'getCommonNamesFromTSN',
                       payload={'tsn': tsn})
    commmon_names = results.xpath('//ax21:commonNames', namespaces=NS21)
    if as_dataframe and pd:
        return xml_utils.element_to_df(commmon_names)
    else:
        return xml_utils.element_to_list(commmon_names)
示例#5
0
def get_rank_names(as_dataframe=True, **kwargs):
    """
    Provides a list of all the unique rank names contained in the database and
    their kingdom and rank ID values.

    Parameters
    ----------
    as_dataframe : bool
        if True return pandas dataframe, if False return list of dictionaries

    kwargs

    Returns
    -------

    """
    results = _get_xml(ITIS_BASE_URL + "getRankNames", payload={})

    rank_names = results.xpath("//ax23:rankNames", namespaces=NS23)
    if as_dataframe and pd:
        return xml_utils.element_to_df(rank_names)
    else:
        return xml_utils.element_to_list(rank_names)
示例#6
0
def get_currency_from_tsn(tsn, as_dataframe=True, **kwargs):
    """
        Returns a list of items from the ITIS getFullHierarchyFromTSN function.
        The resulting pandas dataframe or list of dictionaries contains
         the tsn, as well as common name

    Parameters
    ----------
    tsn : int
        The ITIS taxonomic serial number to query

    as_dataframe : bool
        if True return pandas dataframe, if False return list of dictionaries

    Returns
    -------
        pandas dataframe or list of dictionaries with common names and tsns
    """
    results = _get_xml(ITIS_BASE_URL + "getCurrencyFromTSN",
                       payload={"tsn": tsn})
    if as_dataframe and pd:
        return xml_utils.element_to_df(results)
    else:
        return xml_utils.element_to_list(results)