Eyetracking experiment: Uploading and downloading material to server

PennController for IBEX Forums Support Eyetracking experiment: Uploading and downloading material to server

Viewing 15 posts - 1 through 15 (of 19 total)
  • Author
    Posts
  • #9904
    sangheekim
    Participant

    Hi Jeremy,

    I’m trying to set up a visual world paradigm experiment, replicating an existing code, but with different material. I’m somehow keep seeing the error message that says, “There must be some items in the running order!”. Could you help me identify where the issue is rising from? Thank you so much! Here is the demo link: https://farm.pcibex.net/r/gpKGCm/

    Best,
    Sanghee

    #9922
    Jeremy
    Keymaster

    Hi Sanghee,

    You have a line that reads var showProgressBar = True; in your script, when it should be var showProgressBar = true; — since True (capital T) refers to nothing in your script, it simply crashes on that line and fails to create the trials you define below, resulting in no items in the running order

    Jeremy

    #9924
    sangheekim
    Participant

    Hi Jeremy,

    Thanks so much! I no longer have the error message.

    Other issues I am encountering though are that somehow the trial “PracticeSession” is not loaded even though it’s in the sequence. And the images aren’t loaded — I am using a server to upload the images and I can download the .zip file with the URL — and it’s unclear to me why. Could you help me identify where the issue is coming from? Here is the demo link: https://farm.pcibex.net/r/gpKGCm/

    Best,
    Sanghee

    #9925
    Jeremy
    Keymaster

    Hi Sanghee,

    1. Your Sequence command references the label "practiceSession" but the newTrial command in Template labels trials "PracticeSession" (capital P)

    2. You’re using AddHost in place of PreloadZip

    Jeremy

    #9929
    sangheekim
    Participant

    Hi Jeremy,

    Perfect, it works now!

    If I may, I had a couple of follow-up questions regarding php. I’m reading this document about php (https://doc.pcibex.net/how-to-guides/collecting-eyetracking-data/) and I had a question about the placeholder for the URL. Do I insert the Experiment’s URL right after the colon in the php file? (like in the section below?)

        <div>
            <form method='get' action="">
                Experiment's URL: <input type="text" name="experiment"><br>
                <input type="submit" value="Submit">
            </form>
        </div>
    

    Once I change the URL above and upload the php file to the server, does this mean that I should expect a newly created folder/file that contains the data results in the server folder? Or is it the case that I should only be able to retrieve the data results only when I use this code?

    
    ETURL = "http://files.lab.florianschwarz.net/ibexfiles/RecordingsFromIbex/EyeTracker.php?experiment="
    

    And I’m assuming I should replace this ETURL with the Experiment’s URL I’m using?

    Thanks so so much for your help in advance! Here is the demo link: https://farm.pcibex.net/r/gpKGCm/

    Best,
    Sanghee

    #9932
    Jeremy
    Keymaster

    Hi Sanghee,

    You don’t need to edit the PHP script. The lines you posted here just create an input field for when you visit the PHP page in your browser, in which you can enter the value that will be reported in the experiment’s results file to retrieve the eye-tracking data of the corresponding participant

    The PHP script will create a subfolder named after the URL of the eye-tracking experiment, and will place one file containing compressed data per participant in that subfolder; the PHP script will uncompress the data for you, either when you visit the page in your browser, or when you directly fetch the URL by passing a parameter as illustrated in the R script

    You need to replace http://files.lab.florianschwarz.net/ibexfiles/RecordingsFromIbex/EyeTracker.php with the URL that points to your PHP script, not necessarily the experiment‘s URL: if your experiment is at https://my.server.xyz/myproject/ but your PHP file is at https://my.server.xyz/myscripts/EyeTracker.php, then you should use the latter (ie. ETURL = "https://my.server.xyz/myscripts/EyeTracker.php?experiment=")

    In your case, after I looked up your project’s script, you should use ETURL = "https://mondo1.dreamhosters.com/script.php?experiment=" — also, make sure to replace the sftp path you reference in EyeTrackerURL to use the https path I just reported here: EyeTrackerURL("https://mondo1.dreamhosters.com/script.php")

    Jeremy

    #9934
    sangheekim
    Participant

    Hi Jeremy,

    Thanks so much, these work!!

    As a follow-up — the data results seem to be successfully uploaded to my server, but they are somehow corrupted/unreadable (and are not in a csv format). Would you mind helping me with troubleshooting this issue? Thank you once again! Here is the demo link: https://farm.pcibex.net/r/gpKGCm/

    Best,
    Sanghee

    #9937
    Jeremy
    Keymaster

    Hi Sanghee,

    Do you mean that the data still appear compressed even after using the PHP script? The files themselves, stored on your server, contain compressed data, and the PHP script contains a decompression function, so the data should be readable once parsed by the PHP function

    Jeremy

    #9956
    sangheekim
    Participant

    Hi Jeremy,

    I’m not quite sure if the files are still compressed or not, but I see that the characters inside the file seem corrupted and unreadable. One of the files I downloaded looks like this: https://www.dropbox.com/s/q8jxduug5rxga7d/840b47d0-c7e2-5d6a-bcdb-e0084731f25f?dl=0

    Currently, I have the php file in folder A, and once I collect data, a new folder (folder B — named as ‘httpsfarmpcibexnet’+’UNIQUE_KEY’) is created under folder A, and results from each participant are generated under folder B. The link I shared above is the single file of a result from a single participant. (This was a test trial that I ran and so the result data won’t be so long.)

    Did I put the php file in the wrong directory?

    Thank you again,

    Best,
    Sanghee

    #9969
    Jeremy
    Keymaster

    Hi Sanghee,

    You are supposed to either visit the PHP script in your browser (at https://mondo1.dreamhosters.com/script.php) and enter the key corresponding to a participant’s eye-tracking data that is reported in the results file (eg. something like httpsfarmpcibexnetrgpKGCm/840b47d0-c7e2-5d6a-bcdb-e0084731f25f) in the input box to the right of “Experiment’s URL:”, or pass that key after ?experiment= in https://mondo1.dreamhosters.com/script.php?experiment=httpsfarmpcibexnetrgpKGCm/840b47d0-c7e2-5d6a-bcdb-e0084731f25f, which is the method illustrated in the R script in the how-to guide

    The file at your link contains the compressed data. You need to use the PHP script to decompress it

    Jeremy

    #9976
    sangheekim
    Participant

    Hi Jeremy,

    Thanks so much for this, it works!! I realized I was visiting the script in an incorrect way. Thank you for your patience and assistance!

    Best,
    Sanghee

    #10418
    sangheekim
    Participant

    Hi Jeremy,

    I’m working on analyzing the eye-tracking data, and I was wondering if I can know the notation in the data file. I see the results are divided by the following categories: trial,times,_BottomLeft,_Ys,_BottomRight,_TopRight,_Xs,_TopLeft. Can I know what information each category contains?

    In particular, I’m trying to merge the results file with the eyetracking result data, and I’m having difficulty finding what corresponds to the ‘trial’ in the eyetracking results data in the pcibex results file.

    Thank you!

    Best,
    Sanghee

    #10419
    Jeremy
    Keymaster

    Hi Sanghee,

    The “times” column reports how many milliseconds elapsed between when the EyeTracker element was started, and when the data in the corresponding row were collected (which is why the value in that cell is 0 on the very first row below the header: the first eye-tracking data were collected right when the tracker was started)

    The columns starting with _ are named after the elements you added to the EyeTracker element, and report 0 or 1, depending on whether the (X,Y) coordinates that were estimated by the tracker fell within the boundaries of the corresponding element at that time point

    The “trial” column reports the PennController trial’s ID number. If you only have PennController trials in your experiment, it will correspond to the 4th column in your results file (“Item number”) — more generally, it matches the value of the 9th column (PennElementName) for the rows in the results file that report “_Trial_,Start” or “_Trial_,End”

    Jeremy

    #10422
    sangheekim
    Participant

    Hi Jeremy,

    Thank you for the detailed explanation, this is really helpful!

    Best,
    Sanghee

    #10426
    sangheekim
    Participant

    Hi Jeremy,

    I had a few questions regarding some setup.

    1. Calibration
    I see in the documentation that regarding the calibration process (related to this code, newEyeTracker("tracker").calibrate(70)), it says that “if fewer than 70% of the estimated looks fall on the button during the 3s fixation time-window” (https://doc.pcibex.net/eyetracker/eyetracker-calibrate/).

    Is the current setup that the size of a single dot that the eye gaze has to fall into? If so, can we know how large the dot is? I wasn’t sure if the dot I see is relative to each participant’s screen size or not.

    I’m trying to use a visual world paradigm, where there are four pictures on each quadrant. I’m curious if calibration process is done only on the size of the dot. Or can the calibration be done as large as the image that I’m using (“20vh”, “20vh”), and the coordinates that the four images are located?

    Also, when it says, “if fewer than 70% of the estimated looks fall on the button during the 3s fixation time-window,” does this mean that the calculation for the calibration starts right after the beginning of the appearance of the dot until it disappears (i.e., 3 seconds)?

    Finally, (I may have missed this information from the documentation) what is the default value for calibrate()?

    2. Sampling rate
    Could I know what the sampling rate for the implemented eyetracker function?

    Thank you!

    Best,
    Sanghee

    • This reply was modified 1 year, 2 months ago by sangheekim.
Viewing 15 posts - 1 through 15 (of 19 total)
  • You must be logged in to reply to this topic.