Why do I get the same result, without matter if I change the file? - python-2.7

Hello I am trying to use the following sdk:
https://github.com/watson-developer-cloud/python-sdk/blob/master/examples/speech_to_text_v1.py
In order to get the text transcription of a wav file as follows:
import json
from os.path import join, dirname
from watson_developer_cloud import SpeechToTextV1
speech_to_text = SpeechToTextV1(
username='XXXXXXXXX',
password='XXXXXXXXX',
x_watson_learning_opt_out=False
)
print(json.dumps(speech_to_text.models(), indent=2))
print('I am using the spanish model for this test')
print(json.dumps(speech_to_text.get_model('es-ES_NarrowbandModel'), indent=2))
with open(join(dirname(__file__), '/Users/Downloads/python-sdk-master/examples/test.wav'),
'rb') as audio_file:
print(json.dumps(speech_to_text.recognize(
audio_file, content_type='audio/wav', timestamps=True,
word_confidence=True),
indent=2))
The problem is that every time that I run the request as follows:
python speech.py
I am getting the same result and it does not matter if I change the name of the file in the parameters I always get:
I am using the spanish model for this test
{
"name": "es-ES_NarrowbandModel",
"language": "es-ES",
"sessions": "https://stream.watsonplatform.net/speech-to-text/api/v1/sessions?model=es-ES_NarrowbandModel",
"url": "https://stream.watsonplatform.net/speech-to-text/api/v1/models/es-ES_NarrowbandModel",
"rate": 8000,
"supported_features": {
"custom_language_model": false,
"speaker_labels": true
},
"description": "Spanish narrowband model."
}
{
"results": [
{
"alternatives": [
{
"word_confidence": [
[
"yeah",
0.361
],
[
"and",
0.867
],
[
"on",
0.448
],
[
"the",
0.243
],
[
"loss",
0.172
],
[
"of",
0.68
],
[
"my",
0.953
],
[
"honor",
0.131
],
[
"and",
0.12
],
[
"sometimes",
0.23
],
[
"platter",
0.659
],
[
"and",
0.339
],
[
"also",
0.337
],
[
"got",
0.227
],
[
"asking",
0.383
],
[
"about",
0.1
],
[
"someone",
0.571
],
[
"economies",
0.144
],
[
"on",
0.146
],
[
"both",
0.093
]
],
"confidence": 0.368,
"transcript": "yeah and on the loss of my honor and sometimes platter and also got asking about someone economies on both ",
"timestamps": [
[
"yeah",
0.18,
0.47
],
[
"and",
0.72,
1.28
],
[
"on",
1.28,
1.41
],
[
"the",
1.41,
1.48
],
[
"loss",
1.48,
1.78
],
[
"of",
1.78,
1.89
],
[
"my",
1.89,
2.04
],
[
"honor",
2.04,
2.37
],
[
"and",
2.37,
2.53
],
[
"sometimes",
2.56,
3.17
],
[
"platter",
3.17,
3.53
],
[
"and",
4.04,
4.17
],
[
"also",
4.17,
4.45
],
[
"got",
4.45,
4.63
],
[
"asking",
4.63,
4.97
],
[
"about",
4.97,
5.18
],
[
"someone",
5.18,
5.45
],
[
"economies",
5.45,
5.97
],
[
"on",
5.97,
6.12
],
[
"both",
6.12,
6.34
]
]
}
],
"final": true
},
{
"alternatives": [
{
"word_confidence": [
[
"even",
0.547
],
[
"in",
0.586
],
[
"the",
0.766
],
[
"planet",
0.276
],
[
"of",
0.131
],
[
"my",
0.188
],
[
So I would like to appreciate support to overcome this task,

You shouldn't need the join(dirname(__file__), if you're specifying a fully qualified file path. If the path of your desired audio file isn't in a relative path, I'd try removing the join, although if that's the problem I'd expect a file not found error.

Related

Error while executing commands like " rosmsg show sensor_msgs/ " after creation of a custom message type in ROS Melodic

I created a custom message type in msg package which I saved in CMakeLists.txt after which catkin build was successful. But on trying rosmsg show command,"
Unable to load msg [custom_msg_python/SensorInformation]: Cannot locate message [SensorInformation]: unknown package [custom_msg_python] on search path
[
{
"rosconsole":[
"/opt/ros/melodic/share/rosconsole/msg"
],
"compressed_depth_image_transport":[
"/opt/ros/melodic/share/compressed_depth_image_transport/msg"
],
"catkin":[
"/opt/ros/melodic/share/catkin/msg"
],
"rviz_visual_tools":[
"/opt/ros/melodic/share/rviz_visual_tools/msg"
],
"moveit_planners_chomp":[
"/opt/ros/melodic/share/moveit_planners_chomp/msg"
],
"urdf":[
"/opt/ros/melodic/share/urdf/msg"
],
"rosgraph":[
"/opt/ros/melodic/share/rosgraph/msg"
],
"rqt_py_console":[
"/opt/ros/melodic/share/rqt_py_console/msg"
],
"nodelet_topic_tools":[
"/opt/ros/melodic/share/nodelet_topic_tools/msg"
],
"rqt_graph":[
"/opt/ros/melodic/share/rqt_graph/msg"
],
"nodelet_tutorial_math":[
"/opt/ros/melodic/share/nodelet_tutorial_math/msg"
],
"qt_gui":[
"/opt/ros/melodic/share/qt_gui/msg"
],
"filters":[
"/opt/ros/melodic/share/filters/msg"
],
"ompl":[
"/opt/ros/melodic/share/ompl/msg"
],
"eigen_conversions":[
"/opt/ros/melodic/share/eigen_conversions/msg"
],
"moveit_ros_planning_interface":[
"/opt/ros/melodic/share/moveit_ros_planning_interface/msg"
],
"srdfdom":[
"/opt/ros/melodic/share/srdfdom/msg"
],
"smclib":[
"/opt/ros/melodic/share/smclib/msg"
],
"roslib":[
"/opt/ros/melodic/share/roslib/msg"
],
"geneus":[
"/opt/ros/melodic/share/geneus/msg"
],
"roscpp_serialization":[
"/opt/ros/melodic/share/roscpp_serialization/msg"
],
"diagnostic_msgs":[
"/opt/ros/melodic/share/diagnostic_msgs/msg"
],
"rosbuild":[
"/opt/ros/melodic/share/rosbuild/msg"
],
"rosclean":[
"/opt/ros/melodic/share/rosclean/msg"
],
"tf":[
"/opt/ros/melodic/share/tf/msg"
],
"rqt_publisher":[
"/opt/ros/melodic/share/rqt_publisher/msg"
],
"roslang":[
"/opt/ros/melodic/share/roslang/msg"
],
"geometric_shapes":[
"/opt/ros/melodic/share/geometric_shapes/msg"
],
"smach_ros":[
"/opt/ros/melodic/share/smach_ros/msg"
],
"rqt_web":[
"/opt/ros/melodic/share/rqt_web/msg"
],
"shape_msgs":[
"/opt/ros/melodic/share/shape_msgs/msg"
],
"trajectory_msgs":[
"/opt/ros/melodic/share/trajectory_msgs/msg"
],
"moveit_kinematics":[
"/opt/ros/melodic/share/moveit_kinematics/msg"
],
"diagnostic_aggregator":[
"/opt/ros/melodic/share/diagnostic_aggregator/msg"
],
"image_view":[
"/opt/ros/melodic/share/image_view/msg"
],
"moveit_msgs":[
"/opt/ros/melodic/share/moveit_msgs/msg"
],
"visualization_msgs":[
"/opt/ros/melodic/share/visualization_msgs/msg"
],
"moveit_ros_robot_interaction":[
"/opt/ros/melodic/share/moveit_ros_robot_interaction/msg"
],
"resource_retriever":[
"/opt/ros/melodic/share/resource_retriever/msg"
],
"rqt_topic":[
"/opt/ros/melodic/share/rqt_topic/msg"
],
"laser_filters":[
"/opt/ros/melodic/share/laser_filters/msg"
],
"moveit_resources_panda_moveit_config":[
"/opt/ros/melodic/share/moveit_resources_panda_moveit_config/msg"
],
"rqt_action":[
"/opt/ros/melodic/share/rqt_action/msg"
],
"control_toolbox":[
"/opt/ros/melodic/share/control_toolbox/msg"
],
"rqt_top":[
"/opt/ros/melodic/share/rqt_top/msg"
],
"rqt_rviz":[
"/opt/ros/melodic/share/rqt_rviz/msg"
],
"kdl_parser_py":[
"/opt/ros/melodic/share/kdl_parser_py/msg"
],
"rosgraph_msgs":[
"/opt/ros/melodic/share/rosgraph_msgs/msg"
],
"moveit_ros_planning":[
"/opt/ros/melodic/share/moveit_ros_planning/msg"
],
"rosboost_cfg":[
"/opt/ros/melodic/share/rosboost_cfg/msg"
],
"genmsg":[
"/opt/ros/melodic/share/genmsg/msg"
],
"xacro":[
"/opt/ros/melodic/share/xacro/msg"
],
"turtle_tf2":[
"/opt/ros/melodic/share/turtle_tf2/msg"
],
"rqt_robot_dashboard":[
"/opt/ros/melodic/share/rqt_robot_dashboard/msg"
],
"pluginlib":[
"/opt/ros/melodic/share/pluginlib/msg"
],
"rqt_msg":[
"/opt/ros/melodic/share/rqt_msg/msg"
],
"gazebo_dev":[
"/opt/ros/melodic/share/gazebo_dev/msg"
],
"gl_dependency":[
"/opt/ros/melodic/share/gl_dependency/msg"
],
"rqt_service_caller":[
"/opt/ros/melodic/share/rqt_service_caller/msg"
],
"rqt_gui_py":[
"/opt/ros/melodic/share/rqt_gui_py/msg"
],
"xmlrpcpp":[
"/opt/ros/melodic/share/xmlrpcpp/msg"
],
"rosmaster":[
"/opt/ros/melodic/share/rosmaster/msg"
],
"qt_dotgraph":[
"/opt/ros/melodic/share/qt_dotgraph/msg"
],
"warehouse_ros":[
"/opt/ros/melodic/share/warehouse_ros/msg"
],
"rosnode":[
"/opt/ros/melodic/share/rosnode/msg"
],
"rqt_pose_view":[
"/opt/ros/melodic/share/rqt_pose_view/msg"
],
"bond":[
"/opt/ros/melodic/share/bond/msg"
],
"self_test":[
"/opt/ros/melodic/share/self_test/msg"
],
"laser_assembler":[
"/opt/ros/melodic/share/laser_assembler/msg"
],
"rospack":[
"/opt/ros/melodic/share/rospack/msg"
],
"transmission_interface":[
"/opt/ros/melodic/share/transmission_interface/msg"
],
"image_rotate":[
"/opt/ros/melodic/share/image_rotate/msg"
],
"chomp_motion_planner":[
"/opt/ros/melodic/share/chomp_motion_planner/msg"
],
"rqt_image_view":[
"/opt/ros/melodic/share/rqt_image_view/msg"
],
"roslisp":[
"/opt/ros/melodic/share/roslisp/msg"
],
"rqt_console":[
"/opt/ros/melodic/share/rqt_console/msg"
],
"mk":[
"/opt/ros/melodic/share/mk/msg"
],
"rviz_plugin_tutorials":[
"/opt/ros/melodic/share/rviz_plugin_tutorials/msg"
],
"tf2_msgs":[
"/opt/ros/melodic/share/tf2_msgs/msg"
],
"python_qt_binding":[
"/opt/ros/melodic/share/python_qt_binding/msg"
],
"laser_geometry":[
"/opt/ros/melodic/share/laser_geometry/msg"
],
"rviz":[
"/opt/ros/melodic/share/rviz/msg"
],
"gencpp":[
"/opt/ros/melodic/share/gencpp/msg"
],
"rqt_gui_cpp":[
"/opt/ros/melodic/share/rqt_gui_cpp/msg"
],
"rqt_bag":[
"/opt/ros/melodic/share/rqt_bag/msg"
],
"rqt_gui":[
"/opt/ros/melodic/share/rqt_gui/msg"
],
"qt_gui_py_common":[
"/opt/ros/melodic/share/qt_gui_py_common/msg"
],
"graph_msgs":[
"/opt/ros/melodic/share/graph_msgs/msg"
],
"roscpp_traits":[
"/opt/ros/melodic/share/roscpp_traits/msg"
],
"rosout":[
"/opt/ros/melodic/share/rosout/msg"
],
"diagnostic_common_diagnostics":[
"/opt/ros/melodic/share/diagnostic_common_diagnostics/msg"
],
"rostopic":[
"/opt/ros/melodic/share/rostopic/msg"
],
"smach_msgs":[
"/opt/ros/melodic/share/smach_msgs/msg"
],
"message_generation":[
"/opt/ros/melodic/share/message_generation/msg"
],
"moveit_tutorials":[
"/home/sanket/ws_moveit/src/moveit_tutorials/msg",
"/home/sanket/ws_moveit/devel/share/moveit_tutorials/msg"
],
"camera_calibration":[
"/opt/ros/melodic/share/camera_calibration/msg"
],
"ros_environment":[
"/opt/ros/melodic/share/ros_environment/msg"
],
"qwt_dependency":[
"/opt/ros/melodic/share/qwt_dependency/msg"
],
"polled_camera":[
"/opt/ros/melodic/share/polled_camera/msg"
],
"joy":[
"/opt/ros/melodic/share/joy/msg"
],
"rostime":[
"/opt/ros/melodic/share/rostime/msg"
],
"urdf_tutorial":[
"/opt/ros/melodic/share/urdf_tutorial/msg"
],
"kdl_conversions":[
"/opt/ros/melodic/share/kdl_conversions/msg"
],
"rqt_nav_view":[
"/opt/ros/melodic/share/rqt_nav_view/msg"
],
"roslint":[
"/opt/ros/melodic/share/roslint/msg"
],
"rosservice":[
"/opt/ros/melodic/share/rosservice/msg"
],
"moveit_ros_manipulation":[
"/opt/ros/melodic/share/moveit_ros_manipulation/msg"
],
"rosunit":[
"/opt/ros/melodic/share/rosunit/msg"
],
"turtle_tf":[
"/opt/ros/melodic/share/turtle_tf/msg"
],
"roscpp_tutorials":[
"/opt/ros/melodic/share/roscpp_tutorials/msg"
],
"turtle_actionlib":[
"/opt/ros/melodic/share/turtle_actionlib/msg"
],
"python_orocos_kdl":[
"/opt/ros/melodic/share/python_orocos_kdl/msg"
],
"stage":[
"/opt/ros/melodic/share/stage/msg"
],
"moveit_core":[
"/opt/ros/melodic/share/moveit_core/msg"
],
"visualization_marker_tutorials":[
"/opt/ros/melodic/share/visualization_marker_tutorials/msg"
],
"bondcpp":[
"/opt/ros/melodic/share/bondcpp/msg"
],
"rosconsole_bridge":[
"/opt/ros/melodic/share/rosconsole_bridge/msg"
],
"pluginlib_tutorials":[
"/opt/ros/melodic/share/pluginlib_tutorials/msg"
],
"forward_command_controller":[
"/opt/ros/melodic/share/forward_command_controller/msg"
],
"camera_info_manager":[
"/opt/ros/melodic/share/camera_info_manager/msg"
],
"camera_calibration_parsers":[
"/opt/ros/melodic/share/camera_calibration_parsers/msg"
],
"roslz4":[
"/opt/ros/melodic/share/roslz4/msg"
],
"rqt_dep":[
"/opt/ros/melodic/share/rqt_dep/msg"
],
"moveit_resources_panda_description":[
"/opt/ros/melodic/share/moveit_resources_panda_description/msg"
],
"rosmsg":[
"/opt/ros/melodic/share/rosmsg/msg"
],
"moveit_simple_controller_manager":[
"/opt/ros/melodic/share/moveit_simple_controller_manager/msg"
],
"turtlesim":[
"/opt/ros/melodic/share/turtlesim/msg"
],
"rqt_robot_monitor":[
"/opt/ros/melodic/share/rqt_robot_monitor/msg"
],
"rosparam":[
"/opt/ros/melodic/share/rosparam/msg"
],
"controller_interface":[
"/opt/ros/melodic/share/controller_interface/msg"
],
"diagnostic_analysis":[
"/opt/ros/melodic/share/diagnostic_analysis/msg"
],
"stereo_msgs":[
"/opt/ros/melodic/share/stereo_msgs/msg"
],
"pcl_msgs":[
"/opt/ros/melodic/share/pcl_msgs/msg"
],
"interactive_markers":[
"/opt/ros/melodic/share/interactive_markers/msg"
],
"object_recognition_msgs":[
"/opt/ros/melodic/share/object_recognition_msgs/msg"
],
"diagnostic_updater":[
"/opt/ros/melodic/share/diagnostic_updater/msg"
],
"pybind11_catkin":[
"/opt/ros/melodic/share/pybind11_catkin/msg"
],
"panda_moveit_config":[
"/home/sanket/ws_moveit/src/panda_moveit_config/msg",
"/home/sanket/ws_moveit/devel/share/panda_moveit_config/msg"
],
"pcl_conversions":[
"/opt/ros/melodic/share/pcl_conversions/msg"
],
"rviz_python_tutorial":[
"/opt/ros/melodic/share/rviz_python_tutorial/msg"
],
"tf2":[
"/opt/ros/melodic/share/tf2/msg"
],
"rqt_runtime_monitor":[
"/opt/ros/melodic/share/rqt_runtime_monitor/msg"
],
"urdf_sim_tutorial":[
"/opt/ros/melodic/share/urdf_sim_tutorial/msg"
],
"position_controllers":[
"/opt/ros/melodic/share/position_controllers/msg"
],
"rospy":[
"/opt/ros/melodic/share/rospy/msg"
],
"rosbash":[
"/opt/ros/melodic/share/rosbash/msg"
],
"rqt_reconfigure":[
"/opt/ros/melodic/share/rqt_reconfigure/msg"
],
"rqt_bag_plugins":[
"/opt/ros/melodic/share/rqt_bag_plugins/msg"
],
"image_publisher":[
"/opt/ros/melodic/share/image_publisher/msg"
],
"eigenpy":[
"/opt/ros/melodic/share/eigenpy/msg"
],
"rqt_plot":[
"/opt/ros/melodic/share/rqt_plot/msg"
],
"topic_tools":[
"/opt/ros/melodic/share/topic_tools/msg"
],
"rostest":[
"/opt/ros/melodic/share/rostest/msg"
],
"control_msgs":[
"/opt/ros/melodic/share/control_msgs/msg"
],
"tf_conversions":[
"/opt/ros/melodic/share/tf_conversions/msg"
],
"interactive_marker_tutorials":[
"/opt/ros/melodic/share/interactive_marker_tutorials/msg"
],
"cpp_common":[
"/opt/ros/melodic/share/cpp_common/msg"
],
"nodelet":[
"/opt/ros/melodic/share/nodelet/msg"
],
"actionlib_msgs":[
"/opt/ros/melodic/share/actionlib_msgs/msg"
],
"stage_ros":[
"/opt/ros/melodic/share/stage_ros/msg"
],
"rqt_robot_steering":[
"/opt/ros/melodic/share/rqt_robot_steering/msg"
],
"dynamic_reconfigure":[
"/opt/ros/melodic/share/dynamic_reconfigure/msg"
],
"genpy":[
"/opt/ros/melodic/share/genpy/msg"
],
"actionlib_tutorials":[
"/opt/ros/melodic/share/actionlib_tutorials/msg"
],
"tf2_geometry_msgs":[
"/opt/ros/melodic/share/tf2_geometry_msgs/msg"
],
"compressed_image_transport":[
"/opt/ros/melodic/share/compressed_image_transport/msg"
],
"controller_manager_msgs":[
"/opt/ros/melodic/share/controller_manager_msgs/msg"
],
"rqt_shell":[
"/opt/ros/melodic/share/rqt_shell/msg"
],
"std_msgs":[
"/opt/ros/melodic/share/std_msgs/msg"
],
"realtime_tools":[
"/opt/ros/melodic/share/realtime_tools/msg"
],
"moveit_ros_move_group":[
"/opt/ros/melodic/share/moveit_ros_move_group/msg"
],
"rqt_launch":[
"/opt/ros/melodic/share/rqt_launch/msg"
],
"angles":[
"/opt/ros/melodic/share/angles/msg"
],
"joint_state_controller":[
"/opt/ros/melodic/share/joint_state_controller/msg"
],
"webkit_dependency":[
"/opt/ros/melodic/share/webkit_dependency/msg"
],
"cv_bridge":[
"/opt/ros/melodic/share/cv_bridge/msg"
],
"gazebo_ros":[
"/opt/ros/melodic/share/gazebo_ros/msg"
],
"rosbag_storage":[
"/opt/ros/melodic/share/rosbag_storage/msg"
],
"roswtf":[
"/opt/ros/melodic/share/roswtf/msg"
],
"std_srvs":[
"/opt/ros/melodic/share/std_srvs/msg"
],
"joint_state_publisher_gui":[
"/opt/ros/melodic/share/joint_state_publisher_gui/msg"
],
"moveit_ros_warehouse":[
"/opt/ros/melodic/share/moveit_ros_warehouse/msg"
],
"joint_state_publisher":[
"/opt/ros/melodic/share/joint_state_publisher/msg"
],
"octomap":[
"/opt/ros/melodic/share/octomap/msg"
],
"stereo_image_proc":[
"/opt/ros/melodic/share/stereo_image_proc/msg"
],
"bondpy":[
"/opt/ros/melodic/share/bondpy/msg"
],
"moveit_ros_benchmarks":[
"/opt/ros/melodic/share/moveit_ros_benchmarks/msg"
],
"tf2_kdl":[
"/opt/ros/melodic/share/tf2_kdl/msg"
],
"smach":[
"/opt/ros/melodic/share/smach/msg"
],
"genlisp":[
"/opt/ros/melodic/share/genlisp/msg"
],
"class_loader":[
"/opt/ros/melodic/share/class_loader/msg"
],
"message_filters":[
"/opt/ros/melodic/share/message_filters/msg"
],
"tf2_py":[
"/opt/ros/melodic/share/tf2_py/msg"
],
"hardware_interface":[
"/opt/ros/melodic/share/hardware_interface/msg"
],
"cmake_modules":[
"/opt/ros/melodic/share/cmake_modules/msg"
],
"moveit_ros_visualization":[
"/opt/ros/melodic/share/moveit_ros_visualization/msg"
],
"pcl_ros":[
"/opt/ros/melodic/share/pcl_ros/msg"
],
"nav_msgs":[
"/opt/ros/melodic/share/nav_msgs/msg"
],
"rosmake":[
"/opt/ros/melodic/share/rosmake/msg"
],
"image_proc":[
"/opt/ros/melodic/share/image_proc/msg"
],
"roscpp":[
"/opt/ros/melodic/share/roscpp/msg"
],
"rqt_moveit":[
"/opt/ros/melodic/share/rqt_moveit/msg"
],
"theora_image_transport":[
"/opt/ros/melodic/share/theora_image_transport/msg"
],
"rqt_py_common":[
"/opt/ros/melodic/share/rqt_py_common/msg"
],
"depth_image_proc":[
"/opt/ros/melodic/share/depth_image_proc/msg"
],
"actionlib":[
"/opt/ros/melodic/share/actionlib/msg"
],
"moveit_ros_occupancy_map_monitor":[
"/opt/ros/melodic/share/moveit_ros_occupancy_map_monitor/msg"
],
"franka_description":[
"/opt/ros/melodic/share/franka_description/msg"
],
"octomap_msgs":[
"/opt/ros/melodic/share/octomap_msgs/msg"
],
"qt_gui_cpp":[
"/opt/ros/melodic/share/qt_gui_cpp/msg"
],
"eigen_stl_containers":[
"/opt/ros/melodic/share/eigen_stl_containers/msg"
],
"tf2_ros":[
"/opt/ros/melodic/share/tf2_ros/msg"
],
"librviz_tutorial":[
"/opt/ros/melodic/share/librviz_tutorial/msg"
],
"robot_state_publisher":[
"/opt/ros/melodic/share/robot_state_publisher/msg"
],
"image_geometry":[
"/opt/ros/melodic/share/image_geometry/msg"
],
"moveit_fake_controller_manager":[
"/opt/ros/melodic/share/moveit_fake_controller_manager/msg"
],
"message_runtime":[
"/opt/ros/melodic/share/message_runtime/msg"
],
"image_transport":[
"/opt/ros/melodic/share/image_transport/msg"
],
"diff_drive_controller":[
"/opt/ros/melodic/share/diff_drive_controller/msg"
],
"moveit_commander":[
"/opt/ros/melodic/share/moveit_commander/msg"
],
"gazebo_msgs":[
"/opt/ros/melodic/share/gazebo_msgs/msg"
],
"moveit_visual_tools":[
"/opt/ros/melodic/share/moveit_visual_tools/msg"
],
"roscreate":[
"/opt/ros/melodic/share/roscreate/msg"
],
"moveit_planners_ompl":[
"/opt/ros/melodic/share/moveit_planners_ompl/msg"
],
"rospy_tutorials":[
"/opt/ros/melodic/share/rospy_tutorials/msg"
],
"moveit_ros_control_interface":[
"/opt/ros/melodic/share/moveit_ros_control_interface/msg"
],
"random_numbers":[
"/opt/ros/melodic/share/random_numbers/msg"
],
"gazebo_plugins":[
"/opt/ros/melodic/share/gazebo_plugins/msg"
],
"rqt_srv":[
"/opt/ros/melodic/share/rqt_srv/msg"
],
"urdfdom_py":[
"/opt/ros/melodic/share/urdfdom_py/msg"
],
"map_msgs":[
"/opt/ros/melodic/share/map_msgs/msg"
],
"moveit_setup_assistant":[
"/opt/ros/melodic/share/moveit_setup_assistant/msg"
],
"roslaunch":[
"/opt/ros/melodic/share/roslaunch/msg"
],
"tf2_eigen":[
"/opt/ros/melodic/share/tf2_eigen/msg"
],
"rqt_tf_tree":[
"/opt/ros/melodic/share/rqt_tf_tree/msg"
],
"gazebo_ros_control":[
"/opt/ros/melodic/share/gazebo_ros_control/msg"
],
"moveit_ros_perception":[
"/opt/ros/melodic/share/moveit_ros_perception/msg"
],
"controller_manager":[
"/opt/ros/melodic/share/controller_manager/msg"
],
"rqt_logger_level":[
"/opt/ros/melodic/share/rqt_logger_level/msg"
],
"kdl_parser":[
"/opt/ros/melodic/share/kdl_parser/msg"
],
"gennodejs":[
"/opt/ros/melodic/share/gennodejs/msg"
],
"media_export":[
"/opt/ros/melodic/share/media_export/msg"
],
"geometry_msgs":[
"/opt/ros/melodic/share/geometry_msgs/msg"
],
"urdf_parser_plugin":[
"/opt/ros/melodic/share/urdf_parser_plugin/msg"
],
"joint_limits_interface":[
"/opt/ros/melodic/share/joint_limits_interface/msg"
],
"sensor_msgs":[
"/opt/ros/melodic/share/sensor_msgs/msg"
],
"orocos_kdl":[
"/opt/ros/melodic/share/orocos_kdl/msg"
],
"rosbag":[
"/opt/ros/melodic/share/rosbag/msg"
],
"rosbag_migration_rule":[
"/opt/ros/melodic/share/rosbag_migration_rule/msg"
]
}
]
as error and after that rosmsg show is not working for msgs which are standard. I was following a tutorial on EdX by TU Delft when I came across. What should I do to proceed?

binding.gyp: How to use "copies" section to copy files in multiple location

I am writing code to load c++ dll from electron. I am using node-gyp. In my binding.gyp file I use "copies" tag to copy dlls to Release folder. However I want to copy few more files to be copied to a different location. I tried hit and trial method to do it but was unsuccessful. Here is how my binding.gyp looks:
{
"targets": [{
"conditions":[
["OS=='win'", {
"copies":[{
'destination': './build/Release',
'files':[
'../../cl-fc-client-thirdparty/bugtrap/BugTrapU-x64.dll',
'../build/bin/msvc/Release64/cloudDrive2Lib.dll',
'../../cl-fc-client-thirdparty/openssl/1.0.2j/lib/x86_64-win32/ssleay32MD.dll',
'../../cl-fc-client-thirdparty/poco/1.7.5/bin64/PocoZip64.dll',
'../../cl-fc-client-thirdparty/poco/1.7.5/bin64/PocoXML64.dll',
'../../cl-fc-client-thirdparty/poco/1.7.5/bin64/PocoUtil64.dll',
'../../cl-fc-client-thirdparty/poco/1.7.5/bin64/PocoNetSSL64.dll',
'../../cl-fc-client-thirdparty/poco/1.7.5/bin64/PocoNet64.dll',
'../../cl-fc-client-thirdparty/poco/1.7.5/bin64/PocoJSON64.dll',
'../../cl-fc-client-thirdparty/poco/1.7.5/bin64/PocoFoundation64.dll',
'../../cl-fc-client-thirdparty/poco/1.7.5/bin64/PocoCrypto64.dll',
'../../cl-fc-client-thirdparty/openssl/1.0.2j/lib/x86_64-win32/libeay32MD.dll'
]
}]
}]
],
"target_name": "electronToCppBridge",
"cflags!": [ "-fno-exceptions" ],
"cflags_cc!": [ "-fno-exceptions" ],
"sources": [
"src/electronToCppBridge.cc",
],
'include_dirs': [
"<!#(node -p \"require('node-addon-api').include\")"
],
'libraries': ["../libs/cloudDrive2Lib.lib"],
'dependencies': [
"<!(node -p \"require('node-addon-api').gyp\")"
],
'defines': [ 'NAPI_DISABLE_CPP_EXCEPTIONS' ]
}]
}
Never mind, I was able to achieve this in the following way:
{
"targets": [{
"conditions":[
["OS=='win'", {
"copies":[
{
'destination': './build/Release',
'files':[
'../../cl-fc-client-thirdparty/bugtrap/BugTrapU-x64.dll',
'../build/bin/msvc/Release64/cloudDrive2Lib.dll',
'../../cl-fc-client-thirdparty/openssl/1.0.2j/lib/x86_64-win32/ssleay32MD.dll',
'../../cl-fc-client-thirdparty/poco/1.7.5/bin64/PocoZip64.dll',
'../../cl-fc-client-thirdparty/poco/1.7.5/bin64/PocoXML64.dll',
'../../cl-fc-client-thirdparty/poco/1.7.5/bin64/PocoUtil64.dll',
'../../cl-fc-client-thirdparty/poco/1.7.5/bin64/PocoNetSSL64.dll',
'../../cl-fc-client-thirdparty/poco/1.7.5/bin64/PocoNet64.dll',
'../../cl-fc-client-thirdparty/poco/1.7.5/bin64/PocoJSON64.dll',
'../../cl-fc-client-thirdparty/poco/1.7.5/bin64/PocoFoundation64.dll',
'../../cl-fc-client-thirdparty/poco/1.7.5/bin64/PocoCrypto64.dll',
'../../cl-fc-client-thirdparty/openssl/1.0.2j/lib/x86_64-win32/libeay32MD.dll'
]
},
{
'destination': './libs',
'files':['../build/bin/msvc/Release64/cloudDrive2Lib.lib']
}
]
}]
],
"target_name": "electronToCppBridge",
"cflags!": [ "-fno-exceptions" ],
"cflags_cc!": [ "-fno-exceptions" ],
"sources": [
"src/electronToCppBridge.cc",
],
'include_dirs': [
"<!#(node -p \"require('node-addon-api').include\")"
],
'libraries': ["../libs/cloudDrive2Lib.lib"],
'dependencies': [
"<!(node -p \"require('node-addon-api').gyp\")"
],
'defines': [ 'NAPI_DISABLE_CPP_EXCEPTIONS' ]
}]
}

Multipolygon won't upload in Google BigQuery GIS

I am trying to convert shapes that I serialized into GeoJSON string format back into GEOGRAPHY with Google BigQuery GIS.
SELECT ST_GEOGFROMGEOJSON( BlockGroupShape ) AS tmp from dataset.blockgroup_shape
It was successful for ~90% of the shapes, however, it seems to be failing (only?) on the multipolygons with this error (I have ~10k of these failed ones...):
ST_GeogFromGeoJSON failed: Polygon should have only one shell, holes must be inside the shell. Polygon hole 1 is outside of the shell
Example geography:
{ "type": "MultiPolygon", "coordinates": [ [ [ [ -81.790922, 26.156442 ], [ -81.790924, 26.156640 ], [ -81.791073, 26.156640 ], [ -81.791079, 26.156954 ], [ -81.791092, 26.157640 ], [ -81.790950, 26.157703 ], [ -81.790950, 26.157840 ], [ -81.790958, 26.158269 ], [ -81.790960, 26.158425 ], [ -81.790985, 26.159858 ], [ -81.790987, 26.160142 ], [ -81.790996, 26.160414 ], [ -81.791002, 26.160560 ], [ -81.791009, 26.161166 ], [ -81.791013, 26.161445 ], [ -81.791040, 26.161454 ], [ -81.791072, 26.161486 ], [ -81.791090, 26.161527 ], [ -81.791096, 26.161577 ], [ -81.791096, 26.161640 ], [ -81.791100, 26.161898 ], [ -81.791167, 26.162077 ], [ -81.791185, 26.162806 ], [ -81.791189, 26.163029 ], [ -81.791040, 26.163018 ], [ -81.791043, 26.163137 ], [ -81.791051, 26.163485 ], [ -81.791055, 26.163674 ], [ -81.791060, 26.163890 ], [ -81.791064, 26.164114 ], [ -81.791069, 26.164454 ], [ -81.791075, 26.164800 ], [ -81.790692, 26.164778 ], [ -81.790699, 26.165209 ], [ -81.791081, 26.165198 ], [ -81.791090, 26.165451 ], [ -81.791092, 26.165647 ], [ -81.791094, 26.165881 ], [ -81.791107, 26.166456 ], [ -81.791116, 26.166579 ], [ -81.791122, 26.166668 ], [ -81.791133, 26.166812 ], [ -81.791149, 26.167013 ], [ -81.791191, 26.167464 ], [ -81.791223, 26.167751 ], [ -81.791240, 26.167985 ], [ -81.791272, 26.168303 ], [ -81.791302, 26.168589 ], [ -81.791313, 26.168742 ], [ -81.791337, 26.169281 ], [ -81.791354, 26.169732 ], [ -81.791361, 26.170141 ], [ -81.791365, 26.170405 ], [ -81.791373, 26.170804 ], [ -81.791379, 26.171023 ], [ -81.791381, 26.171228 ], [ -81.791388, 26.171595 ], [ -81.791396, 26.171767 ], [ -81.791404, 26.171880 ], [ -81.791407, 26.172017 ], [ -81.791407, 26.172162 ], [ -81.791407, 26.172477 ], [ -81.791407, 26.172675 ], [ -81.791409, 26.172844 ], [ -81.791421, 26.173196 ], [ -81.791423, 26.173257 ], [ -81.791429, 26.173342 ], [ -81.791447, 26.173512 ], [ -81.791449, 26.173661 ], [ -81.791451, 26.173749 ], [ -81.791459, 26.174266 ], [ -81.791453, 26.175174 ], [ -81.791451, 26.175379 ], [ -81.791449, 26.175731 ], [ -81.791331, 26.175731 ], [ -81.790510, 26.175725 ], [ -81.790544, 26.176437 ], [ -81.790555, 26.177320 ], [ -81.790893, 26.177314 ], [ -81.791450, 26.177310 ], [ -81.791458, 26.177473 ], [ -81.791460, 26.177524 ], [ -81.791465, 26.177903 ], [ -81.791471, 26.178571 ], [ -81.791489, 26.180027 ], [ -81.791491, 26.180180 ], [ -81.791496, 26.180371 ], [ -81.791498, 26.180472 ], [ -81.791504, 26.180892 ], [ -81.791504, 26.181074 ], [ -81.791506, 26.181561 ], [ -81.791517, 26.182158 ], [ -81.791678, 26.182153 ], [ -81.791690, 26.182621 ], [ -81.791705, 26.183187 ], [ -81.791736, 26.184391 ], [ -81.791748, 26.184895 ], [ -81.791762, 26.185437 ], [ -81.791765, 26.185572 ], [ -81.791782, 26.186238 ], [ -81.791804, 26.187134 ], [ -81.791809, 26.187409 ], [ -81.791828, 26.188171 ], [ -81.791836, 26.188478 ], [ -81.791846, 26.188807 ], [ -81.791850, 26.188946 ], [ -81.791856, 26.189186 ], [ -81.791859, 26.189298 ], [ -81.791862, 26.189393 ], [ -81.791866, 26.189540 ], [ -81.791949, 26.192615 ], [ -81.791954, 26.193090 ], [ -81.791961, 26.193329 ], [ -81.792014, 26.195537 ], [ -81.792020, 26.195617 ], [ -81.792025, 26.195783 ], [ -81.792031, 26.196048 ], [ -81.792046, 26.196625 ], [ -81.792148, 26.196628 ], [ -81.792234, 26.196670 ], [ -81.792153, 26.196708 ], [ -81.792048, 26.196710 ], [ -81.791891, 26.196710 ], [ -81.791898, 26.197247 ], [ -81.791903, 26.197681 ], [ -81.791907, 26.197968 ], [ -81.791913, 26.198385 ], [ -81.791915, 26.198523 ], [ -81.791917, 26.198734 ], [ -81.791938, 26.200014 ], [ -81.791938, 26.200078 ], [ -81.791941, 26.200317 ], [ -81.791949, 26.200911 ], [ -81.791995, 26.200978 ], [ -81.792015, 26.201007 ], [ -81.792034, 26.201041 ], [ -81.792049, 26.201100 ], [ -81.792051, 26.201484 ], [ -81.792119, 26.201677 ], [ -81.792120, 26.201744 ], [ -81.792128, 26.202208 ], [ -81.792129, 26.202250 ], [ -81.792158, 26.204339 ], [ -81.792161, 26.204556 ], [ -81.792165, 26.204782 ], [ -81.792172, 26.205331 ], [ -81.792175, 26.205526 ], [ -81.792178, 26.205772 ], [ -81.792182, 26.206009 ], [ -81.792218, 26.208468 ], [ -81.792042, 26.208603 ], [ -81.792081, 26.208610 ], [ -81.792109, 26.208622 ], [ -81.792130, 26.208640 ], [ -81.792148, 26.208673 ], [ -81.792152, 26.208717 ], [ -81.792152, 26.208833 ], [ -81.792165, 26.208963 ], [ -81.792179, 26.209015 ], [ -81.792224, 26.209159 ], [ -81.792228, 26.209224 ], [ -81.792242, 26.209467 ], [ -81.792257, 26.209732 ], [ -81.792276, 26.210112 ], [ -81.792300, 26.210609 ], [ -81.792301, 26.210727 ], [ -81.792303, 26.210901 ], [ -81.792308, 26.211295 ], [ -81.792209, 26.211292 ], [ -81.792133, 26.211294 ], [ -81.791723, 26.211275 ], [ -81.791412, 26.211272 ], [ -81.791028, 26.211276 ], [ -81.790524, 26.211280 ], [ -81.790406, 26.211278 ], [ -81.790254, 26.211275 ], [ -81.790057, 26.211275 ], [ -81.789715, 26.211273 ], [ -81.789525, 26.211273 ], [ -81.789438, 26.211270 ], [ -81.788712, 26.211268 ], [ -81.788414, 26.211265 ], [ -81.788293, 26.211264 ], [ -81.788214, 26.211264 ], [ -81.787656, 26.211272 ], [ -81.787240, 26.211276 ], [ -81.785905, 26.211303 ], [ -81.785811, 26.211338 ], [ -81.785692, 26.211361 ], [ -81.785534, 26.211372 ], [ -81.785164, 26.211380 ], [ -81.785099, 26.211389 ], [ -81.785045, 26.211416 ], [ -81.784999, 26.211453 ], [ -81.784348, 26.211464 ], [ -81.783256, 26.211482 ], [ -81.782915, 26.211482 ], [ -81.781403, 26.211511 ], [ -81.780802, 26.211519 ], [ -81.780426, 26.211522 ], [ -81.780449, 26.211450 ], [ -81.780454, 26.211377 ], [ -81.780453, 26.210966 ], [ -81.780460, 26.210750 ], [ -81.780555, 26.210736 ], [ -81.780951, 26.210615 ], [ -81.781092, 26.210566 ], [ -81.781277, 26.210508 ], [ -81.781538, 26.210444 ], [ -81.781761, 26.210416 ], [ -81.782043, 26.210371 ], [ -81.782333, 26.210344 ], [ -81.782547, 26.210348 ], [ -81.782570, 26.210546 ], [ -81.782570, 26.210718 ], [ -81.782600, 26.210794 ], [ -81.782669, 26.210863 ], [ -81.782730, 26.210892 ], [ -81.782799, 26.210905 ], [ -81.782990, 26.210903 ], [ -81.783127, 26.210888 ], [ -81.783180, 26.210869 ], [ -81.783257, 26.210773 ], [ -81.783706, 26.210692 ], [ -81.783735, 26.210746 ], [ -81.783808, 26.210805 ], [ -81.783921, 26.210827 ], [ -81.783959, 26.210850 ], [ -81.784005, 26.210985 ], [ -81.783996, 26.211083 ], [ -81.784010, 26.211129 ], [ -81.784036, 26.211140 ], [ -81.784096, 26.211133 ], [ -81.784125, 26.211113 ], [ -81.784173, 26.211102 ], [ -81.784308, 26.211109 ], [ -81.784364, 26.211102 ], [ -81.784384, 26.211069 ], [ -81.784378, 26.211017 ], [ -81.784371, 26.210960 ], [ -81.784365, 26.210771 ], [ -81.784332, 26.210441 ], [ -81.784348, 26.210264 ], [ -81.784322, 26.209702 ], [ -81.784298, 26.209183 ], [ -81.784273, 26.208643 ], [ -81.784231, 26.207710 ], [ -81.784253, 26.207703 ], [ -81.784298, 26.207652 ], [ -81.784337, 26.207530 ], [ -81.784322, 26.207305 ], [ -81.784306, 26.207147 ], [ -81.784247, 26.207065 ], [ -81.784238, 26.206671 ], [ -81.784217, 26.205869 ], [ -81.784199, 26.205381 ], [ -81.784184, 26.204548 ], [ -81.784167, 26.203985 ], [ -81.784150, 26.203565 ], [ -81.784116, 26.202845 ], [ -81.783755, 26.202895 ], [ -81.784010, 26.202183 ], [ -81.784088, 26.202179 ], [ -81.784079, 26.201910 ], [ -81.784065, 26.201771 ], [ -81.784019, 26.201548 ], [ -81.784022, 26.201109 ], [ -81.784048, 26.200960 ], [ -81.784060, 26.200891 ], [ -81.784055, 26.200720 ], [ -81.784051, 26.200575 ], [ -81.784028, 26.200436 ], [ -81.783986, 26.200273 ], [ -81.783946, 26.200018 ], [ -81.783936, 26.199507 ], [ -81.783936, 26.199281 ], [ -81.783936, 26.198574 ], [ -81.783919, 26.198468 ], [ -81.783886, 26.198363 ], [ -81.783802, 26.198243 ], [ -81.783735, 26.198092 ], [ -81.783718, 26.197942 ], [ -81.783684, 26.197656 ], [ -81.783718, 26.196737 ], [ -81.783751, 26.196572 ], [ -81.783802, 26.196481 ], [ -81.783819, 26.196451 ], [ -81.783847, 26.196255 ], [ -81.783839, 26.195897 ], [ -81.783824, 26.195500 ], [ -81.783792, 26.194905 ], [ -81.783767, 26.194353 ], [ -81.783762, 26.193506 ], [ -81.783741, 26.193308 ], [ -81.783711, 26.193152 ], [ -81.783667, 26.193029 ], [ -81.783638, 26.192985 ], [ -81.783489, 26.192753 ], [ -81.783163, 26.192341 ], [ -81.783124, 26.192281 ], [ -81.783083, 26.192172 ], [ -81.783075, 26.192112 ], [ -81.783006, 26.192014 ], [ -81.782943, 26.192021 ], [ -81.782888, 26.192014 ], [ -81.782804, 26.191975 ], [ -81.782717, 26.191886 ], [ -81.782707, 26.191828 ], [ -81.782736, 26.191826 ], [ -81.782763, 26.191751 ], [ -81.782698, 26.191576 ], [ -81.782700, 26.191540 ], [ -81.782746, 26.191523 ], [ -81.782787, 26.191520 ], [ -81.782914, 26.191472 ], [ -81.782940, 26.191265 ], [ -81.782940, 26.191190 ], [ -81.782932, 26.191162 ], [ -81.782921, 26.191126 ], [ -81.782869, 26.191009 ], [ -81.782853, 26.190932 ], [ -81.782821, 26.190894 ], [ -81.782805, 26.190778 ], [ -81.782783, 26.190682 ], [ -81.782746, 26.190625 ], [ -81.782711, 26.190552 ], [ -81.782752, 26.190507 ], [ -81.782808, 26.190465 ], [ -81.782944, 26.190315 ], [ -81.782974, 26.190263 ], [ -81.782993, 26.190182 ], [ -81.783000, 26.190002 ], [ -81.783023, 26.189904 ], [ -81.783068, 26.189795 ], [ -81.783162, 26.189630 ], [ -81.783305, 26.189442 ], [ -81.783504, 26.189243 ], [ -81.783575, 26.189108 ], [ -81.783598, 26.188773 ], [ -81.783598, 26.188487 ], [ -81.783587, 26.188289 ], [ -81.783531, 26.187343 ], [ -81.783507, 26.186025 ], [ -81.783463, 26.183615 ], [ -81.783439, 26.183554 ], [ -81.783337, 26.183420 ], [ -81.783292, 26.183342 ], [ -81.783255, 26.183240 ], [ -81.783243, 26.183143 ], [ -81.783243, 26.183049 ], [ -81.783255, 26.182951 ], [ -81.783288, 26.182829 ], [ -81.783360, 26.182551 ], [ -81.783406, 26.182284 ], [ -81.783435, 26.181994 ], [ -81.783420, 26.181008 ], [ -81.783405, 26.180029 ], [ -81.783379, 26.179197 ], [ -81.783409, 26.178789 ], [ -81.783402, 26.178188 ], [ -81.783331, 26.177290 ], [ -81.783352, 26.176979 ], [ -81.783305, 26.176673 ], [ -81.783305, 26.176538 ], [ -81.783341, 26.175959 ], [ -81.783339, 26.175806 ], [ -81.783342, 26.175571 ], [ -81.783333, 26.175091 ], [ -81.783342, 26.174785 ], [ -81.783320, 26.174484 ], [ -81.783320, 26.174305 ], [ -81.783333, 26.174265 ], [ -81.783351, 26.174230 ], [ -81.783436, 26.174188 ], [ -81.783448, 26.174182 ], [ -81.783510, 26.174166 ], [ -81.783590, 26.174126 ], [ -81.783722, 26.174011 ], [ -81.783966, 26.173829 ], [ -81.784105, 26.173762 ], [ -81.784271, 26.173728 ], [ -81.784314, 26.173704 ], [ -81.784416, 26.173615 ], [ -81.784505, 26.173443 ], [ -81.784608, 26.173204 ], [ -81.785277, 26.171912 ], [ -81.785622, 26.171245 ], [ -81.785721, 26.171051 ], [ -81.786154, 26.170196 ], [ -81.786408, 26.168904 ], [ -81.786487, 26.168502 ], [ -81.786589, 26.168133 ], [ -81.786671, 26.167521 ], [ -81.786697, 26.167225 ], [ -81.786738, 26.166765 ], [ -81.786774, 26.166583 ], [ -81.786860, 26.166416 ], [ -81.786894, 26.166370 ], [ -81.784411, 26.161942 ], [ -81.784415, 26.161916 ], [ -81.784355, 26.161897 ], [ -81.784178, 26.161735 ], [ -81.783974, 26.161513 ], [ -81.783955, 26.161237 ], [ -81.784091, 26.161010 ], [ -81.784119, 26.160962 ], [ -81.784263, 26.160741 ], [ -81.784279, 26.160532 ], [ -81.784281, 26.160511 ], [ -81.783916, 26.160332 ], [ -81.783864, 26.160264 ], [ -81.783803, 26.160140 ], [ -81.783856, 26.160028 ], [ -81.783964, 26.159983 ], [ -81.784167, 26.159458 ], [ -81.784203, 26.159366 ], [ -81.784325, 26.159147 ], [ -81.784564, 26.158271 ], [ -81.784598, 26.157992 ], [ -81.784608, 26.157909 ], [ -81.784559, 26.157871 ], [ -81.784422, 26.157656 ], [ -81.784367, 26.157545 ], [ -81.784347, 26.157374 ], [ -81.784370, 26.157166 ], [ -81.784437, 26.157010 ], [ -81.784619, 26.156766 ], [ -81.784719, 26.156632 ], [ -81.784773, 26.156582 ], [ -81.784788, 26.156483 ], [ -81.784802, 26.156487 ], [ -81.784875, 26.156505 ], [ -81.784994, 26.156483 ], [ -81.785517, 26.156543 ], [ -81.785766, 26.156538 ], [ -81.786909, 26.156513 ], [ -81.787420, 26.156502 ], [ -81.789877, 26.156505 ], [ -81.790131, 26.156505 ], [ -81.790194, 26.156501 ], [ -81.790234, 26.156477 ], [ -81.790270, 26.156451 ], [ -81.790922, 26.156442 ] ], [ [ -81.776795, 26.200088 ], [ -81.778140, 26.200009 ], [ -81.778373, 26.199976 ], [ -81.778606, 26.199921 ], [ -81.778837, 26.199857 ], [ -81.779199, 26.199752 ], [ -81.779545, 26.199695 ], [ -81.779891, 26.199657 ], [ -81.780599, 26.199666 ], [ -81.781463, 26.199788 ], [ -81.781762, 26.199902 ], [ -81.781274, 26.199803 ], [ -81.780450, 26.199720 ], [ -81.779785, 26.199703 ], [ -81.779541, 26.199725 ], [ -81.779321, 26.199769 ], [ -81.779053, 26.199841 ], [ -81.778839, 26.199918 ], [ -81.778577, 26.199989 ], [ -81.778138, 26.200072 ], [ -81.777820, 26.200094 ], [ -81.777387, 26.200091 ], [ -81.776795, 26.200088 ] ], [ [ -81.783946, 26.200018 ], [ -81.783782, 26.200054 ], [ -81.783598, 26.200095 ], [ -81.783516, 26.200099 ], [ -81.783409, 26.200106 ], [ -81.783196, 26.200133 ], [ -81.782647, 26.200117 ], [ -81.782444, 26.200073 ], [ -81.783946, 26.200018 ] ] ] ] }
It is that "tail" that is in the Golf Club that is killing it...
The question is, how do I load these multipolygons into BigQuery at scale? (Editing them one by one is not an option)
I took a look at the example geojsoin, it is an interesting one.
I does have three loops, but instead of describing them as multipolygon with three polygons (this is what multipolygons are for - when you have shape consisting of disjoint polygons, it should be described as multipolygon with a list of polygon shapes), it describes it as multipolygon with a single polygon, containing three loops. But loops in a polygon are interpreted as (shell, hole1, hole2, ..). So this is not a valid polygon - the additional loops in the polygon should be holes, but here they are outside of the shell.
What you want
Multipolygon / 3 Polygons / Each with 1 loop
What you have
Multipolygon / 1 polygon / With 3 loops
Or, in geojson, this is what you have:
"coordinates": [ /*start-of-multipolygon*/
[ /*start-of-polygon*/
[ /*first-loop*/ [..,..], .. [..,..] ],
[ /*second-loop*/ [..,..], .. [..,..] ],
[ /*third-loop*/ [..,..], .. [..,..] ]
]
]
What you need is:
"coordinates": [ /*start-of-multipolygon*/
[ /*start-of-polygon*/
[ /*first-loop*/ [..,..], .. [..,..] ]
],
[ /*start-of-polygon*/
[ /*second-loop*/ [..,..], .. [..,..] ]
],
[ /*start-of-polygon*/
[ /*third-loop*/ [..,..], .. [..,..] ]
]
]
For this example it is easy to "fix" the geojson by converting to the proper shape, this fixes the example string:
select st_geogfromgeojson(
REPLACE('<example geojson>', '] ], [ [', '] ] ], [ [ ['));
Of course, the fix is fragile and would be incorrect if the polygon has actual holes - it will convert them to independent shells, and they will disappear.

Telling Jest to not mock /moment(-timezone)?/ not working

Getting an error with jest where anytime moment/moment.tz() is called, TypeError: (0 , _moment2.default)(...).tz is not a function is thrown. Below is my jest config with absolute paths redacted.
{
"configs": [
{
"automock": false,
"browser": false,
"cache": true,
"cacheDirectory": "<absolute path>",
"clearMocks": true,
"coveragePathIgnorePatterns": [
"/node_modules/"
],
"globals": {
"window": true
},
"haste": {
"providesModuleNodeModules": []
},
"moduleDirectories": [
"node_modules",
"src"
],
"moduleFileExtensions": [
"js",
"vue"
],
"moduleNameMapper": [
[
"^#/(.*)$",
"/<absolute path>/src/$1"
],
[
"\\.(css|less)$",
"/<absolute path>/test/__mocks__/styleMock.js"
]
],
"modulePathIgnorePatterns": [],
"name": "79986797be68f3008e950f2cefe0bbd1",
"resetMocks": false,
"resetModules": false,
"rootDir": "<absolute path>",
"roots": [
"<absolute path>/src",
"<absolute path>/test"
],
"runner": "jest-runner",
"setupFiles": [],
"snapshotSerializers": [
"/<absolute path>/node_modules/jest-serializer-html/index.js"
],
"testEnvironment": "jest-environment-jsdom",
"testMatch": [
"**/__tests__/**/*.js?(x)",
"**/?(*.)(spec|test).js?(x)"
],
"testPathIgnorePatterns": [
"node_modules/",
"test/e2e/"
],
"testRegex": "",
"testRunner": "/<absolute path>/node_modules/jest-jasmine2/build/index.js",
"testURL": "about:blank",
"timers": "real",
"transform": [
[
".*\\.(vue)$",
"/<absolute path>/node_modules/vue-jest/vue-jest.js"
],
[
".*\\.js$",
"/opt/cm/cm_frontend/cm/node_modules/babel-jest/build/index.js"
]
],
"transformIgnorePatterns": [
"/node_modules/"
],
"unmockedModulePathPatterns": [
"moment",
"moment-timezone"
],
"watchPathIgnorePatterns": []
}
],
"globalConfig": {
"bail": false,
"changedFilesWithAncestor": false,
"collectCoverage": true,
"collectCoverageFrom": [
"src/components/**/*.{js,vue}",
"src/mixins/**/*.js",
],
"coverageDirectory": "<ABSOLUTE PATH>",
"coverageReporters": [
"json",
"text",
"lcov",
"clover"
],
"expand": false,
"listTests": false,
"mapCoverage": true,
"maxWorkers": 7,
"noStackTrace": false,
"nonFlagArgs": [],
"notify": false,
"rootDir": "<ROOT PATH HERE>",
"runTestsByPath": false,
"testFailureExitCode": 1,
"testPathPattern": "",
"testResultsProcessor": null,
"updateSnapshot": "new",
"useStderr": false,
"verbose": false,
"watch": false,
"watchman": true
},
"version": "21.2.1"
}
I've tried telling jest to jest.dontMock() as well as jest.unmock() but to no avail.
I've also tried require.requireActual().
I want to only mock moment when I specify per test (per file) with jest.mock().
What could be causing these issues? I am not mocking or unmocking moment anywhere in my test files. I've just simply used #vue/test-utils to mock entire computed properties using moment to get around this issue in the meantime.
You could try importing them directly in the tests. Also, I checked issues and other questions and it seems that importing timezone doesn't actually add the tz function to moment, so a way to solve it could be:
import moment from "moment-timezone"

using chutzpah and jasmine with typescript and systemjs

I am having trouble getting an import working in a jasmine unit test that is written in typescript. Chutzpah is throwing an error on the import statement - which in js gets translated to a define
import {fakeclass} from '../src/data-analysis/fakeclass';
The error I see is:
Error: ReferenceError: Can't find variable: define
Otherwise the test gets discovered and runs fine.
I assume it has to with systemjs not being loaded by chutzpah - is there a recommended way to set this up?
here is my chutzpah.json file
{
"Framework": "jasmine",
"TestHarnessReferenceMode": "Normal",
"TypeScriptModuleKind": "CommonJS",
"Compile": {
"Mode": "External",
"Extensions": [ ".ts" ],
"ExtensionsWithNoOutput": [ ".d.ts" ]
},
"References": [
{
"Includes": [ "src/*.ts" ],
"Excludes": [ "src/*.d.ts" ]
},
{
"Path": "./jspm_packages/system.src.js",
"IsTestFrameworkFile": true
},
{
"Path": "./jspm_packages/system-polyfills.src.js",
"IsTestFrameworkFile": true
},
{
"Path": "./config.js",
"IsTestFrameworkFile": true
}
],
"Tests": [
{
"Includes": [ "*/test/*.ts" ],
"Excludes": [ "*/test/*.d.ts" ]
}
]}
I took a look at the sample you gave me and got it working by following the pattern in the Chutzpah Angular2 sample.
config.js
System.config({
defaultJSExtensions: true,
transpiler: "babel",
babelOptions: {
"optional": [
"es7.decorators",
"runtime"
]
},
paths: {
"github:*": "jspm_packages/github/*",
"npm:*": "jspm_packages/npm/*"
},
map: {
}
});
chutzpah.json
{
"Framework": "jasmine",
"TestHarnessReferenceMode": "AMD",
"TestHarnessLocationMode": "SettingsFileAdjacent",
"Compile": {
"Mode": "External",
"Extensions": [ ".ts" ],
"ExtensionsWithNoOutput": [ ".d.ts" ]
},
"References": [
{
"Path": "./jspm_packages/system.src.js",
"IsTestFrameworkFile": true
},
{
"Path": "./jspm_packages/system-polyfills.src.js",
"IsTestFrameworkFile": true
},
{
"Path": "./config.js",
"IsTestFrameworkFile": true
}
],
"Tests": [
{
"Includes": [ "*/test/*.ts" ],
"Excludes": [ "*/test/*.d.ts" ]
}
],
"Server": {
"Enabled": true
}
}