{ "cells": [ { "cell_type": "markdown", "id": "e3ef70a2", "metadata": {}, "source": [ "# Importing data from Eyelink ASC files\n", "\n", "This example shows how to read `.asc` files generated from Eyelink EDF files using `edf2asc`. Usually, it is easier to read the EDF file directly, see the [notebook on reading EDF files](importdata_edf.ipynb). However, the steps below show how to get data from any text-based format into `pypillometry`." ] }, { "cell_type": "code", "execution_count": 1, "id": "0d0f6616", "metadata": { "execution": { "iopub.execute_input": "2026-11-10T13:36:18.351544Z", "iopub.status.busy": "2026-11-10T13:36:18.351227Z", "iopub.status.idle": "2026-11-10T13:36:19.195898Z", "shell.execute_reply": "2026-11-10T13:36:19.194823Z" } }, "outputs": [], "source": [ "import os\n", "import pypillometry as pp\n", "from pypillometry import u\n", "import pandas as pd\n", "import numpy as np\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "markdown", "id": "6f527c61", "metadata": {}, "source": [ "In this example, we use data recorded with an Eyelink eyetracker. These eyetrackers store the data in binary files with the extension `.edf`. Some information about this file format is [here](http://download.sr-support.com/dispdoc/page25.html). We use a command-line utility released by Eyelink to convert this proprietary format into a more easily read `.asc` file that is a whitespace-separated plain-text format. The converter, `edf2asc`, can be downloaded for different platforms from the [Eyelink support forum](https://www.sr-research.com/support/). There is a GUI-based program for Windows and command-line programs for Linux and Mac. Binaries of the command-line tools for Linux and Mac are included in the `pypillometry` repository under [this link](https://github.com/ihrke/pypillometry/tree/master/external).\n", "\n", "On Linux, we call the program twice on an example EDF file, once for the samples and once for the events:" ] }, { "cell_type": "code", "execution_count": 2, "id": "5cd3d1f7", "metadata": { "execution": { "iopub.execute_input": "2026-11-10T13:36:19.199258Z", "iopub.status.busy": "2026-11-10T13:36:19.198673Z", "iopub.status.idle": "2026-11-10T13:36:27.154216Z", "shell.execute_reply": "2026-11-10T13:36:27.152679Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "EDF2ASC: EyeLink EDF file -> ASCII (text) file translator\r\n", "EDF2ASC version 3.0 Linux Dec 1 2008 \r\n", "(c)1995-2007 by SR Research, last modified Dec 1 2008\r\n", "\r\n", "processing file ../../data/test.edf \r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "=====================Preamble of file ../../data/test.edf======================\r\n", "| DATE: Fri Feb 14 08:48:33 2020 |\r\n", "| TYPE: EDF_FILE BINARY EVENT SAMPLE TAGGED |\r\n", "| VERSION: EYELINK II 1 |\r\n", "| SOURCE: EYELINK CL |\r\n", "| EYELINK II CL v6.12 Feb 1 2018 (EyeLink Portable Duo) |\r\n", "| CAMERA: EyeLink USBCAM Version 1.01 |\r\n", "| SERIAL NUMBER: CLU-DAC49 |\r\n", "| CAMERA_CONFIG: DAC49200.SCD |\r\n", "| Psychopy GC demo |\r\n", "===============================================================================\r\n", "\r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Processed [ ]0%\r", "Processed [ ]1%\r", "Processed [ ]2%\r", "Processed [ ]3%\r", "Processed [ ]4%\r", "Processed [ ]5%\r", "Processed [ ]6%\r", "Processed [ ]7%\r", "Processed [ ]8%\r", "Processed [ ]9%\r", "Processed [* ]10%\r", "Processed [* ]11%\r", "Processed [* ]12%\r", "Processed [* ]13%\r", "Processed [* ]14%\r", "Processed [* ]15%\r", "Processed [* ]16%\r", "Processed [* ]17%\r", "Processed [* ]18%\r", "Processed [* ]19%\r", "Processed [** ]20%\r", "Processed [** ]21%\r", "Processed [** ]22%\r", "Processed [** ]23%\r", "Processed [** ]24%\r", "Processed [** ]25%\r", "Processed [** ]26%\r", "Processed [** ]27%\r", "Processed [** ]28%\r", "Processed [** ]29%\r", "Processed [*** ]30%\r", "Processed [*** ]31%\r", "Processed [*** ]32%\r", "Processed [*** ]33%\r", "Processed [*** ]34%\r", "Processed [*** ]35%\r", "Processed [*** ]36%\r", "Processed [*** ]37%\r", "Processed [*** ]38%\r", "Processed [*** " ] }, { "name": "stdout", "output_type": "stream", "text": [ " ]39%\r", "Processed [**** ]40%\r", "Processed [**** ]41%\r", "Processed [**** ]42%\r", "Processed [**** ]43%\r", "Processed [**** ]44%\r", "Processed [**** ]45%\r", "Processed [**** ]46%\r", "Processed [**** ]47%\r", "Processed [**** ]48%\r", "Processed [**** ]49%\r", "Processed [***** ]50%\r", "Processed [***** ]51%\r", "Processed [***** ]52%\r", "Processed [***** ]53%\r", "Processed [***** ]54%\r", "Processed [***** ]55%\r", "Processed [***** ]56%\r", "Processed [***** ]57%\r", "Processed [***** ]58%\r", "Processed [***** ]59%\r", "Processed [****** ]60%\r", "Processed [****** ]61%\r", "Processed [****** ]62%\r", "Processed [****** ]63%\r", "Processed [****** ]64%\r", "Processed [****** ]65%\r", "Processed [****** ]66%\r", "Processed [****** ]67%\r", "Processed [****** ]68%\r", "Processed [****** ]69%\r", "Processed [******* ]70%\r", "Processed [******* ]71%\r", "Processed [******* ]72%\r", "Processed [******* ]73%\r", "Processed [******* ]74%\r", "Processed [******* ]75%\r", "Processed [******* ]76%\r", "Processed [******* ]77%\r", "Processed [******* ]78%\r", "Proc" ] }, { "name": "stdout", "output_type": "stream", "text": [ "essed [******* ]79%\r", "Processed [******** ]80%\r", "Processed [******** ]81%\r", "Processed [******** ]82%\r", "Processed [******** ]83%\r", "Processed [******** ]84%\r", "Processed [******** ]85%\r", "Processed [******** ]86%\r", "Processed [******** ]87%\r", "Processed [******** ]88%\r", "Processed [******** ]89%\r", "Processed [********* ]90%\r", "Processed [********* ]91%\r", "Processed [********* ]92%\r", "Processed [********* ]93%\r", "Processed [********* ]94%\r", "Processed [********* ]95%\r", "Processed [********* ]96%\r", "Processed [********* ]97%\r", "Processed [********* ]98%\r", "Processed [********* ]99%\r", "Processed [**********]100%\r", "Converted successfully: 0 events, 1245363 samples, 6 blocks.\r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "EDF2ASC: EyeLink EDF file -> ASCII (text) file translator\r\n", "EDF2ASC version 3.0 Linux Dec 1 2008 \r\n", "(c)1995-2007 by SR Research, last modified Dec 1 2008\r\n", "\r\n", "processing file ../../data/test.edf \r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "=====================Preamble of file ../../data/test.edf======================\r\n", "| DATE: Fri Feb 14 08:48:33 2020 |\r\n", "| TYPE: EDF_FILE BINARY EVENT SAMPLE TAGGED |\r\n", "| VERSION: EYELINK II 1 |\r\n", "| SOURCE: EYELINK CL |\r\n", "| EYELINK II CL v6.12 Feb 1 2018 (EyeLink Portable Duo) |\r\n", "| CAMERA: EyeLink USBCAM Version 1.01 |\r\n", "| SERIAL NUMBER: CLU-DAC49 |\r\n", "| CAMERA_CONFIG: DAC49200.SCD |\r\n", "| Psychopy GC demo |\r\n", "===============================================================================\r\n", "\r\n", "Processed [ ]0%\r", "Processed [ ]1%\r", "Processed [ ]2%\r", "Processed [ ]3%\r", "Processed [ ]4%\r", "Processed [ ]5%\r", "Processed [ ]6%\r", "Processed [ ]7%\r", "Processed [ ]8%\r", "Processed [ ]9%\r", "Processed [* ]10%\r", "Processed [* ]11%\r", "Processed [* ]12%\r", "Processed [* ]13%\r", "Processed [* ]14%\r", "Processed [* ]15%\r", "Processed [* ]16%\r", "Processed [* ]17%\r", "Processed [* ]18%\r", "Processed [* ]19%\r", "Processed [** ]20%\r", "Processed [** ]21%\r", "Processed [** ]22%\r", "Processed [** ]23%\r", "Processed [** ]24%\r", "Processed [** ]25%\r", "Processed [** ]26%\r", "Processed [** ]27%\r", "Processed [** ]28%\r", "Processed [** ]29%\r", "Processed [*** ]30%\r", "Processed [*** ]31%\r", "Processed [*** ]32%\r", "Processed [*** ]33%\r", "Processed [*** ]34%\r", "Processed [*** ]35%\r", "Processed [*** ]36%\r", "Processed [*** ]37%\r", "Processed [*** ]38%\r", "Processed [*** " ] }, { "name": "stdout", "output_type": "stream", "text": [ " ]39%\r", "Processed [**** ]40%\r", "Processed [**** ]41%\r", "Processed [**** ]42%\r", "Processed [**** ]43%\r", "Processed [**** ]44%\r", "Processed [**** ]45%\r", "Processed [**** ]46%\r", "Processed [**** ]47%\r", "Processed [**** ]48%\r", "Processed [**** ]49%\r", "Processed [***** ]50%\r", "Processed [***** ]51%\r", "Processed [***** ]52%\r", "Processed [***** ]53%\r", "Processed [***** ]54%\r", "Processed [***** ]55%\r", "Processed [***** ]56%\r", "Processed [***** ]57%\r", "Processed [***** ]58%\r", "Processed [***** ]59%\r", "Processed [****** ]60%\r", "Processed [****** ]61%\r", "Processed [****** ]62%\r", "Processed [****** ]63%\r", "Processed [****** ]64%\r", "Processed [****** ]65%\r", "Processed [****** ]66%\r", "Processed [****** ]67%\r", "Processed [****** ]68%\r", "Processed [****** ]69%\r", "Processed [******* ]70%\r", "Processed [******* ]71%\r", "Processed [******* ]72%\r", "Processed [******* ]73%\r", "Processed [******* ]74%\r", "Processed [******* ]75%\r", "Processed [******* ]76%\r", "Processed [******* ]77%\r", "Processed [******* ]78%\r", "Processed [******* ]79%\r", "Processed [******** ]80%\r", "Processed [******** ]81%\r", "Processed [******** ]82%\r", "Processed [******** ]83%\r", "Processed [******** ]84%\r", "Processed [******** ]85%\r", "Processed [******** ]86%\r", "Processed [******** ]87%\r", "Processed [******** ]88%\r", "Processed [******** ]89%\r", "Processed [********* ]90%\r", "Processed [********* ]91%\r", "Processed [********* ]92%\r", "Processed [********* ]93%\r", "Processed [********* ]94%\r", "Processed [********* ]95%\r", "Processed [********* ]96%\r", "Processed [********* ]97%\r", "Processed [********* ]98%\r", "Processed [********* ]99%\r", "Processed [**********]100%\r", "Converted successfully: 37139 events, 0 samples, 6 blocks.\r\n" ] } ], "source": [ "!../../external/edf2asc-linux -y -s ../../data/test.edf ../../data/test_samples.asc\n", "!../../external/edf2asc-linux -y -e ../../data/test.edf ../../data/test_events.asc" ] }, { "cell_type": "markdown", "id": "4e6c07ae", "metadata": {}, "source": [ "This results in two files, one containing all the samples and one all the recorded events." ] }, { "cell_type": "code", "execution_count": 3, "id": "16bf06b4", "metadata": { "execution": { "iopub.execute_input": "2026-11-10T13:36:27.157699Z", "iopub.status.busy": "2026-11-10T13:36:27.157387Z", "iopub.status.idle": "2026-11-10T13:36:27.161418Z", "shell.execute_reply": "2026-11-10T13:36:27.160494Z" } }, "outputs": [], "source": [ "fname_samples = \"../../data/test_samples.asc\"\n", "fname_events = \"../../data/test_events.asc\"" ] }, { "cell_type": "markdown", "id": "e198da6d", "metadata": {}, "source": [ "The samples file contains a large table with the timestamp, x/y-coordinates of the eye position and pupil area for the left and the right eye (plus a column with status flags). Here are the first few rows of this file:" ] }, { "cell_type": "code", "execution_count": 4, "id": "a310bc4b", "metadata": { "execution": { "iopub.execute_input": "2026-11-10T13:36:27.163723Z", "iopub.status.busy": "2026-11-10T13:36:27.163455Z", "iopub.status.idle": "2026-11-10T13:36:27.434619Z", "shell.execute_reply": "2026-11-10T13:36:27.433306Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "3385900\t 817.3\t 345.2\t 1707.0\t 860.6\t 375.2\t 1738.0\t.....\r\n", "3385902\t 817.0\t 343.5\t 1706.0\t 860.7\t 375.9\t 1739.0\t.....\r\n", "3385904\t 816.7\t 341.6\t 1705.0\t 861.2\t 376.6\t 1739.0\t.....\r\n", "3385906\t 816.7\t 340.4\t 1706.0\t 861.7\t 376.8\t 1740.0\t.....\r\n", "3385908\t 816.7\t 340.2\t 1707.0\t 861.6\t 376.9\t 1742.0\t.....\r\n", "3385910\t 816.8\t 340.2\t 1708.0\t 861.1\t 377.1\t 1743.0\t.....\r\n", "3385912\t 816.9\t 340.9\t 1708.0\t 860.7\t 377.5\t 1744.0\t.....\r\n", "3385914\t 816.1\t 342.1\t 1710.0\t 861.1\t 378.7\t 1745.0\t.....\r\n", "3385916\t 815.2\t 343.2\t 1712.0\t 862.5\t 380.0\t 1746.0\t.....\r\n", "3385918\t 814.4\t 343.6\t 1713.0\t 863.9\t 380.7\t 1747.0\t.....\r\n" ] } ], "source": [ "!head $fname_samples" ] }, { "cell_type": "markdown", "id": "4dae7735", "metadata": {}, "source": [ "We can read this file using `pandas.read_table()`. Eyelink marks missing x/y-coordinates with `\".\"` and missing pupil data with `0`. We convert both to `NaN`, which `pypillometry` treats as missing data. This is an explicit step: `pypillometry` does not interpret `0` as missing by itself." ] }, { "cell_type": "code", "execution_count": 5, "id": "2bd62ed8", "metadata": { "execution": { "iopub.execute_input": "2026-11-10T13:36:27.437692Z", "iopub.status.busy": "2026-11-10T13:36:27.437435Z", "iopub.status.idle": "2026-11-10T13:36:28.086693Z", "shell.execute_reply": "2026-11-10T13:36:28.085736Z" } }, "outputs": [ { "data": { "text/html": [ "
| \n", " | time | \n", "left_x | \n", "left_y | \n", "left_p | \n", "right_x | \n", "right_y | \n", "right_p | \n", "flags | \n", "
|---|---|---|---|---|---|---|---|---|
| 0 | \n", "3385900 | \n", "817.3 | \n", "345.2 | \n", "1707.0 | \n", "860.6 | \n", "375.2 | \n", "1738.0 | \n", "..... | \n", "
| 1 | \n", "3385902 | \n", "817.0 | \n", "343.5 | \n", "1706.0 | \n", "860.7 | \n", "375.9 | \n", "1739.0 | \n", "..... | \n", "
| 2 | \n", "3385904 | \n", "816.7 | \n", "341.6 | \n", "1705.0 | \n", "861.2 | \n", "376.6 | \n", "1739.0 | \n", "..... | \n", "
| 3 | \n", "3385906 | \n", "816.7 | \n", "340.4 | \n", "1706.0 | \n", "861.7 | \n", "376.8 | \n", "1740.0 | \n", "..... | \n", "
| 4 | \n", "3385908 | \n", "816.7 | \n", "340.2 | \n", "1707.0 | \n", "861.6 | \n", "376.9 | \n", "1742.0 | \n", "..... | \n", "
| ... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "
| 1245358 | \n", "5923060 | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", ".C.C. | \n", "
| 1245359 | \n", "5923062 | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", ".C.C. | \n", "
| 1245360 | \n", "5923064 | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", ".C.C. | \n", "
| 1245361 | \n", "5923066 | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", ".C.C. | \n", "
| 1245362 | \n", "5923068 | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", ".C.C. | \n", "
1245363 rows × 8 columns
\n", "EyeDataDict(vars=2,n=1268585,shape=(1268585,)): \n",
" left_pupil (float64): 1707.0, 1706.0, 1705.0, 1706.0, 1707.0...\n",
" right_pupil (float64): 1738.0, 1739.0, 1739.0, 1740.0, 1742.0...\n",
"\n",
" EyeDataDict(vars=6,n=1268585,shape=(1268585,)): \n",
" left_x (float64): 817.3, 817.0, 816.7, 816.7, 816.7...\n",
" left_y (float64): 345.2, 343.5, 341.6, 340.4, 340.2...\n",
" left_pupil (float64): 1707.0, 1706.0, 1705.0, 1706.0, 1707.0...\n",
" right_x (float64): 860.6, 860.7, 861.2, 861.7, 861.6...\n",
" right_y (float64): 375.2, 375.9, 376.6, 376.8, 376.9...\n",
" right_pupil (float64): 1738.0, 1739.0, 1739.0, 1740.0, 1742.0...\n",
"\n",
" | \n", " | 0 | \n", "1 | \n", "2 | \n", "3 | \n", "4 | \n", "5 | \n", "6 | \n", "7 | \n", "8 | \n", "
|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", "MSG | \n", "3387245 | \n", "C_GW_1_1_UD_UD | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "
| 1 | \n", "MSG | \n", "3390421 | \n", "F_GW_1_1_10_0 | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "
| 2 | \n", "MSG | \n", "3392759 | \n", "C_NW_1_2_UD_UD | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "
| 3 | \n", "MSG | \n", "3394293 | \n", "R_NW_1_2_UD_UD | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "
| 4 | \n", "MSG | \n", "3395952 | \n", "F_NW_1_2_-1_0 | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "
| ... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "
| 1065 | \n", "MSG | \n", "5893078 | \n", "V_UD_UD_16_UD_UD | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "
| 1066 | \n", "MSG | \n", "5899076 | \n", "V_UD_UD_17_UD_UD | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "
| 1067 | \n", "MSG | \n", "5905073 | \n", "V_UD_UD_18_UD_UD | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "
| 1068 | \n", "MSG | \n", "5911072 | \n", "V_UD_UD_19_UD_UD | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "
| 1069 | \n", "MSG | \n", "5917071 | \n", "V_UD_UD_20_UD_UD | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "
1070 rows × 9 columns
\n", "| \n", " | 0 | \n", "1 | \n", "2 | \n", "3 | \n", "4 | \n", "5 | \n", "6 | \n", "7 | \n", "8 | \n", "
|---|---|---|---|---|---|---|---|---|---|
| 209 | \n", "MSG | \n", "3900393 | \n", "RECCFG | \n", "CR | \n", "500 | \n", "2 | \n", "1 | \n", "LR | \n", "NaN | \n", "
| 211 | \n", "MSG | \n", "3900393 | \n", "GAZE_COORDS | \n", "0.00 | \n", "0.00 | \n", "1919.00 | \n", "1079.00 | \n", "NaN | \n", "NaN | \n", "
| 212 | \n", "MSG | \n", "3900393 | \n", "THRESHOLDS | \n", "L | \n", "56 | \n", "231 | \n", "R | \n", "66 | \n", "239 | \n", "
| 213 | \n", "MSG | \n", "3900393 | \n", "ELCL_WINDOW_SIZES | \n", "176 | \n", "188 | \n", "0 | \n", "0 | \n", "NaN | \n", "NaN | \n", "
| 215 | \n", "MSG | \n", "3900393 | \n", "ELCL_PROC | \n", "CENTROID | \n", "(3) | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "
| \n", " | time | \n", "event | \n", "
|---|---|---|
| 0 | \n", "3387245 | \n", "C_GW_1_1_UD_UD | \n", "
| 1 | \n", "3390421 | \n", "F_GW_1_1_10_0 | \n", "
| 2 | \n", "3392759 | \n", "C_NW_1_2_UD_UD | \n", "
| 3 | \n", "3394293 | \n", "R_NW_1_2_UD_UD | \n", "
| 4 | \n", "3395952 | \n", "F_NW_1_2_-1_0 | \n", "
| ... | \n", "... | \n", "... | \n", "
| 1065 | \n", "5893078 | \n", "V_UD_UD_16_UD_UD | \n", "
| 1066 | \n", "5899076 | \n", "V_UD_UD_17_UD_UD | \n", "
| 1067 | \n", "5905073 | \n", "V_UD_UD_18_UD_UD | \n", "
| 1068 | \n", "5911072 | \n", "V_UD_UD_19_UD_UD | \n", "
| 1069 | \n", "5917071 | \n", "V_UD_UD_20_UD_UD | \n", "
1035 rows × 2 columns
\n", "EyeDataDict(vars=2,n=1268585,shape=(1268585,)): \n",
" left_pupil (float64): 1707.0, 1706.0, 1705.0, 1706.0, 1707.0...\n",
" right_pupil (float64): 1738.0, 1739.0, 1739.0, 1740.0, 1742.0...\n",
"\n",
" EyeDataDict(vars=6,n=1268585,shape=(1268585,)): \n",
" left_x (float64): 817.3, 817.0, 816.7, 816.7, 816.7...\n",
" left_y (float64): 345.2, 343.5, 341.6, 340.4, 340.2...\n",
" left_pupil (float64): 1707.0, 1706.0, 1705.0, 1706.0, 1707.0...\n",
" right_x (float64): 860.6, 860.7, 861.2, 861.7, 861.6...\n",
" right_y (float64): 375.2, 375.9, 376.6, 376.8, 376.9...\n",
" right_pupil (float64): 1738.0, 1739.0, 1739.0, 1740.0, 1742.0...\n",
"\n",
"