<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:

def gps_input_encode(self, time_usec, gps_id, ignore_flags, time_week_ms, time_week, fix_type, lat, lon, alt, hdop, vdop, vn, ve, vd, speed_accuracy, horiz_accuracy, vert_accuracy, satellites_visible):
                '''
                GPS sensor input message.  This is a raw sensor value sent by the GPS.
                This is NOT the global position estimate of the sytem.

                time_usec                 : Timestamp (micros since boot or Unix epoch) (uint64_t)
                gps_id                    : ID of the GPS for multiple GPS inputs (uint8_t)
                ignore_flags              : Flags indicating which fields to ignore (see GPS_INPUT_IGNORE_FLAGS enum).  All other fields must be provided. (uint16_t)
                time_week_ms              : GPS time (milliseconds from start of GPS week) (uint32_t)
                time_week                 : GPS week number (uint16_t)
                fix_type                  : 0-1: no fix, 2: 2D fix, 3: 3D fix. 4: 3D with DGPS. 5: 3D with RTK (uint8_t)
                lat                       : Latitude (WGS84), in degrees * 1E7 (int32_t)
                lon                       : Longitude (WGS84), in degrees * 1E7 (int32_t)
                alt                       : Altitude (AMSL, not WGS84), in m (positive for up) (float)
                hdop                      : GPS HDOP horizontal dilution of position in m (float)
                vdop                      : GPS VDOP vertical dilution of position in m (float)
                vn                        : GPS velocity in m/s in NORTH direction in earth-fixed NED frame (float)
                ve                        : GPS velocity in m/s in EAST direction in earth-fixed NED frame (float)
                vd                        : GPS velocity in m/s in DOWN direction in earth-fixed NED frame (float)
                speed_accuracy            : GPS speed accuracy in m/s (float)
                horiz_accuracy            : GPS horizontal accuracy in m (float)
                vert_accuracy             : GPS vertical accuracy in m (float)
                satellites_visible        : Number of satellites visible. (uint8_t)

                '''
                return MAVLink_gps_input_message(time_usec, gps_id, ignore_flags, time_week_ms, time_week, fix_type, lat, lon, alt, hdop, vdop, vn, ve, vd, speed_accuracy, horiz_accuracy, vert_accuracy, satellites_visible)