Curling#

Curling relies on the following parameterized features:

Extensions of the BaseFeature class to be specific to curling sheets.

The features are all parameterized by the basic characteristics of a curling sheet. A user can manually specify their own court parameters in the CurlingSheet class that will adjust the placement of these features, however the features themselves will be consistent across all curling surfaces.

@author: Ross Drucker

class sportypy._feature_classes.curling.BackLine(sheet_length=0.0, sheet_width=0.0, feature_radius=0.0, feature_thickness=0.0, feature_units='ft', *args, **kwargs)#

A parameterization of the back line.

This is the line that runs through the back of the house, from side wall to side wall

class sportypy._feature_classes.curling.BaseCurlingFeature(sheet_length=0.0, sheet_width=0.0, feature_radius=0.0, feature_thickness=0.0, feature_units='ft', *args, **kwargs)#

An extension of the BaseFeature class for curling features.

The following attributes are specific to curling features only. For more information on inherited attributes, please see the BaseFeature class definition. The default values are provided to ensure that the feature can at least be created.

sheet_length#

The length of the sheet in TV view. The default is 0.0

Type:

float

sheet_width#

The width of the sheet in TV view. The default is 0.0

Type:

float

feature_radius#

The radius needed to draw the feature. This may not be needed for all features. The default is 0.0

Type:

float

feature_thickness#

The thickness with which to draw the feature. This is normally given as the horizontal width of the feature in TV view, however it may be used to specify other thicknesses as needed. The default is 0.0

Type:

float

field_units#

The units with which the feature is drawn. The default is "ft"

Type:

str

class sportypy._feature_classes.curling.Boundary(sheet_length=0.0, sheet_width=0.0, feature_radius=0.0, feature_thickness=0.0, feature_units='ft', *args, **kwargs)#

The constraint around the interior edge of the sheet’s boundary lines.

This confines all interior features to be constrained inside the sheet, as well as any interior plots.

class sportypy._feature_classes.curling.Button(sheet_length=0.0, sheet_width=0.0, feature_radius=0.0, feature_thickness=0.0, feature_units='ft', *args, **kwargs)#

A parameterization of the button in each house on the curling sheet.

The button is the center ring of the house, with its center located at the intersection of the tee line and centre line

class sportypy._feature_classes.curling.CentreLine(tee_line_to_center=0.0, centre_line_extension=0.0, *args, **kwargs)#

A parameterization of the centre line.

This is the line that runs the full length (from hack to hack) on the sheet

tee_line_to_center#

The distance from the center of the shet to the center of the tee line

Type:

float

centre_line_extension#

The distance beyond the center of the tee line that the centre line extends towards the back wall

Type:

float

class sportypy._feature_classes.curling.CentreZone(tee_line_to_center=0.0, hog_line_to_tee_line=0.0, *args, **kwargs)#

A parameterization of the centre zone of the curling sheet.

This is the area located between the hog lines

tee_line_to_center#

The distance from the center of the shet to the center of the tee line

Type:

float

hog_line_to_tee_line#

The distance from the inside edge of the hog line (the edge nearest the house) to the tee line

Type:

float

class sportypy._feature_classes.curling.CourtesyLine(courtesy_line_length=0.0, *args, **kwargs)#

A parameterization of the courtesy line.

These lines are where players stand during the delivery process of each stone when the opposing team is throwing

courtesy_line_length#

The distance outward from the inner edge of the side wall that the courtesy line extends towards the center of the sheet

Type:

float

class sportypy._feature_classes.curling.End(tee_line_to_center=0.0, hog_line_to_tee_line=0.0, drawn_direction='upward', *args, **kwargs)#

A parameterization of an end of the curling sheet.

The end is the area between the center-side edge of the hog line and the back board behind the nearest house

tee_line_to_center#

The distance from the center of the shet to the center of the tee line

Type:

float

hog_line_to_tee_line#

The distance from the inside edge of the hog line (the edge nearest the house) to the tee line

Type:

float

drawn_direction#

The direction in which to draw the end of the sheet

Type:

str

class sportypy._feature_classes.curling.HackFoothold(foothold_depth=0.0, foothold_width=0.0, *args, **kwargs)#

A parameterization of a single foothold in the hack.

There are two footholds in each hack. This feature only plots one of the footholds

hack_foothold_gap#

The interior separation between the two footholds in the hack

Type:

float

hack_foothold_depth#

The distance from the house-side to the back wall side of the foothold of the hack. The back of the foothold will lie along the hack line

Type:

float

class sportypy._feature_classes.curling.HackLine(hack_width=0.0, *args, **kwargs)#

A parameterization of the hack line.

This is the line that runs between each foothold in the hack

hack_width#

The full width of the hack, measured from the outer edge of each of the footholds

Type:

float

class sportypy._feature_classes.curling.HogLine(sheet_length=0.0, sheet_width=0.0, feature_radius=0.0, feature_thickness=0.0, feature_units='ft', *args, **kwargs)#

A parameterization of the hog line.

This is the line at the start of each end of the ice

class sportypy._feature_classes.curling.HouseRing(sheet_length=0.0, sheet_width=0.0, feature_radius=0.0, feature_thickness=0.0, feature_units='ft', *args, **kwargs)#

A parameterization of a single ring in the house.

The rings are concentric, centered at the intersection of the tee line and centre line

class sportypy._feature_classes.curling.SheetApron(apron_behind_back=0.0, apron_along_side=0.0, *args, **kwargs)#

A parameterization of the boundary of the sheet.

This feature may be negligible in thickness, but it does help provide more definition to the sheet itself

apron_behind_back#

The dimension of the sheet’s apron behind the back board. In TV view, this is in the y direction

Type:

float

apron_along_side#

The dimension of the sheet’s apron beyond the side wall. In TV view, this is in the +``x`` direction

Type:

float

class sportypy._feature_classes.curling.TeeLine(sheet_length=0.0, sheet_width=0.0, feature_radius=0.0, feature_thickness=0.0, feature_units='ft', *args, **kwargs)#

A parameterization of the tee line.

This is the line that runs through the center of the house, from side wall to side wall