Extractors
Question Extractor
This module provides a function to extract question tasks (single and multiple) from panoptes annotations.
- panoptes_aggregation.extractors.question_extractor.question_extractor(classification, **kwargs)
Extract annotations from a question task into a Counter object
- Parameters
classification (dict) – A dictionary containing an annotations key that is a list of panoptes annotations
- Returns
extraction – A dictionary (formated like a counter) indicating what annotations were made
- Return type
Examples
>>> classification_multiple = {'annotations': [ { 'vlaue': ['Blue', 'Green'] } ]} >>> question_extractor(classification_multiple) {'blue': 1, 'green': 1}
>>> classification_single = {'annotations': [ {'vlaue': 'Yes'} ]} >>> question_extractor(classification_single) {'yes': 1}
- panoptes_aggregation.extractors.question_extractor.slugify_or_null(s)
Slugify value while casting null as a string fisrt
Slider Extractor
This module provides a function to extract slider tasks from panoptes annotations.
- panoptes_aggregation.extractors.slider_extractor.slider_extractor(classification, **kwargs)
Extract annotations from a slider task
- Parameters
classification (dict) – A dictionary containing an annotations key that is a list of panoptes annotations
- Returns
extraction – A dictionary indicating what annotation was made
- Return type
Point Extractor
This module provides a function to extract drawn points from panoptes annotations.
- panoptes_aggregation.extractors.point_extractor.point_extractor(classification, **kwargs)
Extract annotations from a point drawing tool into lists. This extractor does not support extraction from multi-frame subjects or subtask extraction. If either of these are needed use
panoptes_aggregation.extractors.point_extractor_by_frame
.- Parameters
classification (dict) – A dictionary containing an annotations key that is a list of panoptes annotations
- Returns
extraction – A dictionary with two keys, x and y, each containing a list of x and y postions for each marked point
- Return type
Examples
>>> classification = {'annotations': [ { 'task': 'T0', 'value': [{'tool': 0, 'x': 5, 'y': 10}] } ]} >>> point_extractor(classification) {'T0_tool0_x': [5], 'T0_tool0_y': [10]}
Point Extractor By Frame
This module provides a function to extract drawn points from panoptes annotations.
- panoptes_aggregation.extractors.point_extractor_by_frame.point_extractor_by_frame(classification, **kwargs)
Extract annotations from a point drawing tool into lists.
- Parameters
classification (dict) – A dictionary containing an annotations key that is a list of panoptes annotations
- Returns
extraction – A dictionary with one key per frame. Each frame has two keys, x and y, each containing a list of x and y postions for each marked point
- Return type
Examples
>>> classification = {'annotations': [ { 'task': 'T0', 'value': [{'tool': 0, 'x': 5, 'y': 10, 'frame': 0}], } ]} >>> point_extractor(classification) {'frame0': {'T0_tool0_x': [5], 'T0_tool0_y': [10]}}
Rectangle Extractor
This module provides a function to extract drawn rectangles from panoptes annotations.
- panoptes_aggregation.extractors.rectangle_extractor.rectangle_extractor(classification, **kwargs)
Extact rectangle data from annotation
- Parameters
classification (dict) – A dictionary containing an annotations key that is a list of panoptes annotations
- Returns
extraction – A dictionary containing one key per frame. Each frame contains the x, y, width, and height values for each tool used in the annotation. These are lists that contain one value for each rectangle drawn for each tool.
- Return type
Shape Extractor
This module provides a function to extract drawn shapes from panoptes annotations.
- panoptes_aggregation.extractors.shape_extractor.shape_extractor(classification, **kwargs)
Extract shape data from annotations
- Parameters
classification (dict) – A dictionary containing an annotations key that is a list of panoptes annotation
shape (str, keyword, required) – A string indicating what shape the annotation contains. This should be the name of one of the pre-defined shape tools.
- Returns
extraction – A dictionary containing one key per frame. Each frame contains the shape defining values for each tool used in the annotation. These are lists that contain one value for each shape drawn for each tool.
- Return type
Survey Extractor
This module provides a function to extract choices and sub-questions from panoptes survey tasks.
- panoptes_aggregation.extractors.survey_extractor.survey_extractor(classification, **kwargs)
Extract annotations from a survye task into a list
- Parameters
classification (dict) – A dictionary containing an annotations key that is a list of panoptes annotations
- Returns
extraction – A list of dicts each with choice and answers as keys. Each choice made in an annotation is extacted to a different element of the list.
- Return type
Examples
>>> classification = {'annotations': [ {'value': [{'choice': 'AGOUTI', 'answers': {'HOWMANY': '1'}}] } ]} >>> survey_extractor(classification) [{'choice': 'agouti','answers_howmany': {'1': 1}}]
Polygon As Line Tool for Text Extractor
This module provides a function to extract panoptes annotations from projects using a polygon tool to mark words in a transcribed document and provide the transcribed text as a sub-task.
- panoptes_aggregation.extractors.poly_line_text_extractor.poly_line_text_extractor(classification, dot_freq='line', gold_standard=False, **kwargs)
Extract annotations from a polygon tool with a text sub-task
- Parameters
classification (dict) – A dictionary containing an annotations key that is a list of panoptes annotations
- Returns
extraction – A dictionary with one key for each frame. The value for each frame is a dict with text a list-of-lists of transcribe words, points a dict with the list-of-lists of x and y postions of each space between words, slope a list of the slopes (in deg) of each line drawn, and gold_standard a bool indicating if the annotation was made in gold standard mode in the classifier. For points and text there is one inner list for each annotaiton made on the frame.
- Return type
Examples
>>> classification = {'annotations': [ 'value': [ { 'frame': 0, 'points': [ {'x': 756, 'y': 197}, {'x': 856', y': 197} ], 'details': [ {'value': '[unclear]Cipher[/unclear]'} ], }, { 'frame': 0, 'points': [ {'x': 756, 'y': 97}, {'x': 856, 'y': 97}, {'x': 956, 'y': 97} ], 'details': [ {'value': 'A word'} ], } ]} >>> poly_line_text_extractor(classification) {'frame0': { 'points': {'x': [[756, 856], [756, 856, 956]], 'y': [[197, 197], [97, 97, 97]]}, 'text': [['[unclear]Cipher[/unclear]'], ['A', 'word']] 'slope': [0, 0], 'gold_standard': False }}
Line Tool for Text Extractor
This module provides a function to extract panoptes annotations from projects using a line tool to mark lines of text in a transcribed document and provide the text as a sub-task.
- panoptes_aggregation.extractors.line_text_extractor.line_text_extractor(classification, gold_standard=False, **kwargs)
Extract annotations from a line tool with a text sub-task
- Parameters
classification (dict) – A dictionary containing an annotations key that is a list of panoptes annotations
- Returns
extraction – A dictionary with one key for each frame. The value for each frame is a dict with text, a list-of-lists of transcribe lines, points, a dict with the list-of-lists of x and y postions of each line, and slope, a list of the slopes (in deg) of each line drawn. For points and text there is one inner list for each annotaiton made on the frame.
- Return type
Shakespeares World Text Extractor
This module provides a fuction to extract the text data from annotations made on Shakespeares World and AnnoTate.
- panoptes_aggregation.extractors.sw_extractor.clean_text(s)
Clean text from Shakespeares World and AnnoTate classification to prepare it for aggregation. Unicode characters, xml, and html are removed.
- Parameters
s (string) – A string to be cleaned
- Returns
clean_s – The string with all unicode, xml, and html removed
- Return type
string
- panoptes_aggregation.extractors.sw_extractor.sw_extractor(classification, gold_standard=False, **kwargs)
Extract text annotations from Shakespeares World and AnnoTate.
- Parameters
classification (dict) – A dictionary containing an annotations key that is a list of panoptes annotations
- Returns
extraction – A dictionary with one key for each frame. The value for each frame is a dict with text, a list-of-lists of transcribe words, points, a dict with the list-of-lists of x and y postions of each space between words, and slope, a list of the slopes (in deg) of each line drawn. For points and text there is one inner list for each annotaiton made on the frame.
- Return type
Shakespeares World Variants Extractor
This module provides a fuction to extract the variants data from annotations made on Shakespeares World.
- panoptes_aggregation.extractors.sw_variant_extractor.sw_variant_extractor(classification, **kwargs)
Extract all variants in a classification into one list
- Parameters
classification (dict) – A dictionary containing an annotations key that is a list of Shakespeares World annotations
- Returns
extraction – A dictionary with at most one key, variants with the list of all variants in the classification
- Return type
Shakespeares World Graphic Extractor
This module provides a fuction to extract the graphic data from annotations made on Shakespeares World and AnnoTate.
- panoptes_aggregation.extractors.sw_graphic_extractor.sw_graphic_extractor(classification, **kwargs)
Extract all graphics data from a classification
- Parameters
classification (dict) – A dictionary containing an annotations key that is a list of Shakespeares World or AnnoTate annotations
- Returns
extraction – A dictionary containing one key per frame. Each frame contains the x, y, width, and height values for each tool used in the annotation. These are lists that contain one value for each rectangle drawn for each tool.
- Return type
Dropdown Extractor
This module provides a function to extract dropdown selections from panoptes annotations.
- panoptes_aggregation.extractors.dropdown_extractor.dropdown_extractor(classification, **kwargs)
Extract annotations from a dropdown task into a Counter object
- Parameters
classification (dict) – A dictionary containing annotations as a key that is a list of panoptes annotations
- Returns
extraction – A dictionary containing value as a key that is a list of Counter dictionaries, one entry for each dropdown list in the task
- Return type
Text Extractor
This module provides a function to extract text tasks from panoptes annotations
- panoptes_aggregation.extractors.text_extractor.text_extractor(classification, gold_standard=False, **kwargs)
Extract annotations from a text task as a string.
- Parameters
classification (dict) – A dictionary containing annotations as a key that is a list of panoptes annotations
- Returns
extraction – A dictionary with two keys * text: the string for the text entered for the task * gold_standard: bool indicated if the classification was made in gold standard mode
- Return type
Intro2Astro Extractor
This module provides a function that converts the pixel annotation to wavelength and uses the subject metadata to precalculate values required by students to use Hubble’s Law to compute galactic velocity.
- panoptes_aggregation.extractors.i2a_extractor.i2a_extractor(classification, **kwargs)
Extract annotations from intro2astro annotation and returns calculated values and values extracted from subject metadata required by students to use Hubble’s Law to compute galactic velocity.
- Parameters
classification (dict) – A dictionary containing an annotations key that is a list of panoptes annotations. There should only be one, and the first is the only one considered.
- Returns
extraction – A dictionary with a set of keys, including those that were computed by this function and those that were extracted from the subject metadata.
- Return type
Examples
>>> classification = { "annotations": [ { "task": "T0", "value": [ { "width": 80.36077880859375, "tool": 0, "0": 0, "details": [], "x": 541.7737426757812, "frame": 0 } ] } ], "metadata": { "subject_dimensions": [ { "clientWidth": 444, "clientHeight": 333, "naturalWidth": 1152, "naturalHeight": 864 } ] }, "subject": { "metadata": { "RA": "121.62522", "Dec": "17.42804", "URL": "http://skyserver.sdss.org/dr12/en/tools/explore/Summary.aspx?ra=121.62522&dec=17.42804", "spiral": "0", "elliptical": "1", "Distance_Mpc": "481.4064706", "SVG_filename": "1237665128518320259.svg", "#Published_Redshift": "0.1091188" } } } >>> point_extractor(classification) { "galaxy_id": "1237665128518320259", "url": "http://skyserver.sdss.org/dr12/en/tools/explore/Summary.aspx?ra=121.62522&dec=17.42804", "RA": "121.62522", "dec": "17.42804", "dist": 481.40647058823527, "redshift": 0.1146063992421806, "velocity": 34381.91977265418, "lambdacen": 438.4527192698966 }
Nfn Extractor
This module provides functions to answer certain questions about a Notes from Nature annotation for use in their Field Book.
- class panoptes_aggregation.extractors.nfn_extractor.ClassificationParser(classification, kwargs)
A classification parser
All Tasks Empty Extractor
Extractor determines whether all task values are empty.
- panoptes_aggregation.extractors.all_tasks_empty_extractor.all_tasks_empty_extractor(classification, **kwargs)
Determine whether all task values in a classification are empty.
- Parameters
classification (dict) – A dictionary containing an annotations key that is a list of panoptes annotations
- Returns
extraction – extraction[“result”] is True if all task values are None. False otherwise.
- Return type