def create_channel(self,<EOL>channel_name,<EOL>project_name,<EOL>dataset_name,<EOL>channel_type,<EOL>dtype,<EOL>startwindow,<EOL>endwindow,<EOL>readonly=<NUM_LIT:0>,<EOL>start_time=<NUM_LIT:0>,<EOL>end_time=<NUM_LIT:0>,<EOL>propagate=<NUM_LIT:0>,<EOL>resolution=<NUM_LIT:0>,<EOL>channel_description='<STR_LIT>'):
self._check_channel(channel_name)<EOL>if channel_type not in ['<STR_LIT:image>', '<STR_LIT>', '<STR_LIT>']:<EOL><INDENT>raise ValueError('<STR_LIT>' +<EOL>'<STR_LIT>')<EOL><DEDENT>if readonly * <NUM_LIT:1> not in [<NUM_LIT:0>, <NUM_LIT:1>]:<EOL><INDENT>raise ValueError("<STR_LIT>")<EOL><DEDENT>url = self.url() + "<STR_LIT>".format(dataset_name)+ "<STR_LIT>".format(project_name) +"<STR_LIT>".format(channel_name)<EOL>json = {<EOL>"<STR_LIT>": channel_name,<EOL>"<STR_LIT>": channel_type,<EOL>"<STR_LIT>": dtype,<EOL>"<STR_LIT>": startwindow,<EOL>"<STR_LIT>": endwindow,<EOL>'<STR_LIT>': start_time,<EOL>'<STR_LIT>': end_time,<EOL>'<STR_LIT>': readonly,<EOL>'<STR_LIT>': propagate,<EOL>'<STR_LIT>': resolution,<EOL>'<STR_LIT>': channel_description<EOL>}<EOL>req = self.remote_utils.post_url(url, json=json)<EOL>if req.status_code is not <NUM_LIT>:<EOL><INDENT>raise RemoteDataUploadError('<STR_LIT>'.format(req.text))<EOL><DEDENT>if req.content == "<STR_LIT>" or req.content == b'<STR_LIT>':<EOL><INDENT>return True<EOL><DEDENT>else:<EOL><INDENT>return False<EOL><DEDENT>
Create a new channel on the Remote, using channel_data.

Arguments:
    channel_name (str): Channel name
    project_name (str): Project name
    dataset_name (str): Dataset name
    channel_type (str): Type of the channel (e.g. `neurodata.IMAGE`)
    dtype (str): The datatype of the channel's data (e.g. `uint8`)
    startwindow (int): Window to start in
    endwindow (int): Window to end in
    readonly (int): Can others write to this channel?
    propagate (int): Allow propogation? 1 is True, 0 is False
    resolution (int): Resolution scaling
    channel_description (str): Your description of the channel

Returns:
    bool: `True` if successful, `False` otherwise.

Raises:
    ValueError: If your args were bad :(
    RemoteDataUploadError: If the channel data is valid but upload
        fails for some other reason.