Commit 2148534c authored by Samarakoon S.M.A.D IT20233808's avatar Samarakoon S.M.A.D IT20233808

Merge branch 'feature/IT20233808/soilBasedCropRecommendation' into 'master'

Feature/it20233808/soil based crop recommendation

See merge request !13
parents a2f7ab56 22bbda52
No preview for this file type
import { StyleSheet, Text, View } from 'react-native'; import { StyleSheet, Text, View } from 'react-native';
import { NavigationContainer } from "@react-navigation/native"; import { NavigationContainer } from "@react-navigation/native";
import { createNativeStackNavigator } from "@react-navigation/native-stack"; import { createNativeStackNavigator } from "@react-navigation/native-stack";
import TestWithButton from './components/recomendationComponentsBySoil/TestWithButton';
import SoilDataOptions from './components/recomendationComponentsBySoil/SoilDataOptions'; import SoilDataOptions from './components/recomendationComponentsBySoil/SoilDataOptions';
import ManualSoilData from './components/recomendationComponentsBySoil/ManualSoilData'; import ManualSoilData from './components/recomendationComponentsBySoil/ManualSoilData';
import MostSutaibleCrops from './components/recomendationComponentsBySoil/MostSutaibleCrops'; import MostSutaibleCrops from './components/recomendationComponentsBySoil/MostSutaibleCrops';
import CreateCropRotaionPlan from './components/cropRotationPlanner/cropRotationCreation';
import HomePage from './components/common/Home'; import HomePage from './components/common/Home';
import WeatherApp from './components/weatherCrop/Weatherpredict'; import WeatherApp from './components/weatherCrop/Weatherpredict';
import WeatherData from './components/weatherCrop/WeatherData'; import WeatherData from './components/weatherCrop/WeatherData';
import WeatherDataOptions from './components/weatherCrop/WeatherDataOptions'; import WeatherDataOptions from './components/weatherCrop/WeatherDataOptions';
import CropRotationResponse from './components/cropRotationPlanner/CropRotationResponse'; import CropRotationResponse from './components/cropRotationPlanner/CropRotationResponse';
import Crops from './components/weatherCrop/Crops'; import Crops from './components/weatherCrop/Crops';
import CreateCropRotaionPlan from './components/cropRotationPlanner/CropRotationCreation';
import AgriExpertSolution from './components/agriExpertComponent/AgriExpertSolution';
import NutrientSlider from './components/agriExpertComponent/NutrientSelect';
import CustomCrop from './components/recomendationComponentsBySoil/CustomCrop';
import CustomCropSelect from './components/recomendationComponentsBySoil/CustomCropSelect';
export default function App() { export default function App() {
...@@ -24,13 +26,17 @@ export default function App() { ...@@ -24,13 +26,17 @@ export default function App() {
<Stack.Screen name="Soil Data Options" component={SoilDataOptions}/> <Stack.Screen name="Soil Data Options" component={SoilDataOptions}/>
<Stack.Screen name="Most Suitable Crops" component={MostSutaibleCrops}/> <Stack.Screen name="Most Suitable Crops" component={MostSutaibleCrops}/>
<Stack.Screen name="Add Soil Data Manually " component={ManualSoilData}/> <Stack.Screen name="Add Soil Data Manually " component={ManualSoilData}/>
<Stack.Screen name="TestWithButton" component={TestWithButton}/>
<Stack.Screen name="Create Crop Rotation Plan" component={CreateCropRotaionPlan}/> <Stack.Screen name="Create Crop Rotation Plan" component={CreateCropRotaionPlan}/>
<Stack.Screen name="Crop Rotation Plan" component={CropRotationResponse}/> <Stack.Screen name="Crop Rotation Plan" component={CropRotationResponse}/>
<Stack.Screen name="Weather Data Options" component={WeatherDataOptions} /> <Stack.Screen name="Weather Data Options" component={WeatherDataOptions} />
<Stack.Screen name="Weather Data" component={WeatherData} /> <Stack.Screen name="Weather Data" component={WeatherData} />
<Stack.Screen name="Crops" component={Crops} /> <Stack.Screen name="Crops" component={Crops} />
<Stack.Screen name='Weather Predict' component={WeatherApp} /> <Stack.Screen name='Weather Predict' component={WeatherApp} />
<Stack.Screen name='Nutrient Slider' component={NutrientSlider} />
<Stack.Screen name='Agri Expert' component={AgriExpertSolution} />
<Stack.Screen name='Test Custom Crop' component={CustomCrop} />
<Stack.Screen name='Custom Crop Select' component={CustomCropSelect} />
</Stack.Navigator> </Stack.Navigator>
</NavigationContainer> </NavigationContainer>
); );
......
import React, { useState } from 'react';
import { View, Text, TextInput, Button, StyleSheet, ImageBackground } from 'react-native';
import { useRoute } from '@react-navigation/native';
import axios from 'axios';
const backgroundImage = require('../../assets/backgroudManualData.jpg');
export default function AddSolutionScreen() {
const [name, setName] = useState('');
const [description, setDescription] = useState('');
const [recommended_application, setRecommendedApplication] = useState('');
const route = useRoute();
const { target_nutrient } = route.params;
const handleSubmit = () => {
if (!name || !description || !recommended_application) {
alert('Please fill out all fields and select a nutrient.');
} else {
const newData = {
name,
description,
target_nutrient,
recommended_application,
};
axios
.post('http://127.0.0.1:5000/add_solution', newData, {
headers: {
'Content-Type': 'application/json',
},
})
.then((response) => {
console.log('Response from server:', response.data);
setName('');
setDescription('');
setRecommendedApplication('');
alert('Solution added successfully!');
})
.catch((error) => {
console.error('Error:', error);
alert('An error occurred while adding the solution. Please try again later.');
});
}
};
return (
<ImageBackground source={backgroundImage} style={styles.background}>
<View style={styles.container}>
<Text style={styles.label}>Name:</Text>
<TextInput
style={styles.input}
onChangeText={setName}
value={name}
placeholder="Enter the solution name"
/>
<Text style={styles.label}>Description:</Text>
<TextInput
style={[styles.input, styles.multilineInput]}
onChangeText={setDescription}
value={description}
multiline
placeholder="Enter a description of the solution"
/>
<Text style={styles.label}>Recommended Application:</Text>
<TextInput
style={styles.input}
onChangeText={setRecommendedApplication}
value={recommended_application}
placeholder="Enter recommended application details"
/>
<Button title="Submit" onPress={handleSubmit} />
</View>
</ImageBackground>
);
}
const styles = StyleSheet.create({
background: {
flex: 1,
resizeMode: 'cover',
},
container: {
flex: 1,
padding: 16,
backgroundColor: 'rgba(255, 255, 255, 0.8)',
},
label: {
fontSize: 16,
fontWeight: 'bold',
marginBottom: 5,
color: 'black', // Change text color to black
},
input: {
height: 40,
borderColor: 'black', // Change border color to black
borderWidth: 1,
borderRadius: 5,
paddingHorizontal: 10,
marginBottom: 20,
color: 'black', // Change text color to black
},
multilineInput: {
height: 100,
paddingTop: 10,
},
picker: {
height: 40,
borderColor: 'black', // Change border color to black
borderWidth: 1,
borderRadius: 5,
},
fieldContainer: {
flexDirection: 'row',
alignItems: 'center',
justifyContent: 'space-between',
marginBottom: 20,
},
});
import React, { useState, useEffect } from 'react';
import { View, Text, StyleSheet, TouchableOpacity, Animated } from 'react-native';
import { useNavigation } from '@react-navigation/native';
import Carousel from 'react-native-snap-carousel';
const BlinkingText = () => {
const [isBlinking, setIsBlinking] = useState(true);
const fadeAnim = new Animated.Value(1);
const startBlinking = () => {
Animated.loop(
Animated.sequence([
Animated.timing(fadeAnim, {
toValue: 0,
duration: 1000,
useNativeDriver: true,
}),
Animated.timing(fadeAnim, {
toValue: 1,
duration: 1000,
useNativeDriver: true,
}),
])
).start();
};
useEffect(() => {
startBlinking();
}, []);
return (
<Animated.View style={{ opacity: fadeAnim }}>
<Text style={styles.blinkingText}>Slide to select the Nutrient</Text>
</Animated.View>
);
};
const NutrientSlider = ({ target_nutrient }) => {
const nutrientOptions = [
{ name: 'Nitrogen', color: '#FF6F61' },
{ name: 'Phosphorus', color: '#6B4226' },
{ name: 'Potassium', color: '#5E8C31' },
];
const navigation = useNavigation();
const handleNutrientSelection = (nutrient) => {
// Navigate to AgriExpert page and pass the selected nutrient
navigation.navigate('Agri Expert', { target_nutrient: nutrient });
};
return (
<View style={styles.container}>
<Text style={styles.heading}>Nutrient Select</Text>
<Carousel
data={nutrientOptions}
renderItem={({ item }) => (
<TouchableOpacity
style={[
styles.nutrientCard,
{ backgroundColor: item.color },
target_nutrient === item.name && styles.selectedCard,
]}
onPress={() => handleNutrientSelection(item.name)}
>
<View style={styles.centeredContent}>
<Text style={styles.nutrientText}>{item.name}</Text>
</View>
</TouchableOpacity>
)}
sliderWidth={300}
itemWidth={200}
loop
/>
<BlinkingText />
</View>
);
};
const styles = StyleSheet.create({
container: {
alignItems: 'center',
paddingVertical: 300,
},
heading:{
fontSize:20,
},
nutrientCard: {
borderRadius: 10,
padding: 20,
alignItems: 'center',
justifyContent: 'center',
height: 150,
},
selectedCard: {
borderColor: 'blue',
borderWidth: 2,
},
nutrientText: {
fontSize: 16,
fontWeight: 'bold',
color: '#FFF',
},
centeredContent: {
alignItems: 'center',
justifyContent: 'center',
},
blinkingText: {
fontSize: 24,
fontWeight: 'bold',
color: 'black',
marginTop: 100,
},
});
export default NutrientSlider;
const cropDescription = {
banana:"Banana can be grown in coconut lands in the wet, intermediate and dry zones. In the wet zone, it is grown as a rain fed crop.",
pomegranate: " In Sri Lanka, pomegranate can be seen grown in dry zones and it takes six-eight years to get the maximum harvest from a pomegranate tree.",
orange: " It can be grown in the village gardens in Sri Lanka. It grows best in the dry zone where low atmospheric humidity and a definite dry period aids growth and maturity of fruits. "
}
export default cropDescription
\ No newline at end of file
...@@ -13,6 +13,11 @@ const HomePage = ({ navigation }) => { ...@@ -13,6 +13,11 @@ const HomePage = ({ navigation }) => {
navigation.navigate('Weather Data Options'); navigation.navigate('Weather Data Options');
} else if (option === 'cropRotationPlan') { } else if (option === 'cropRotationPlan') {
navigation.navigate('Create Crop Rotation Plan'); navigation.navigate('Create Crop Rotation Plan');
}else if(option === 'nutrientSlider'){
navigation.navigate('Nutrient Slider')
}
else if(option === 'customCropSelect'){
navigation.navigate('Custom Crop Select')
} }
}; };
...@@ -31,6 +36,12 @@ const HomePage = ({ navigation }) => { ...@@ -31,6 +36,12 @@ const HomePage = ({ navigation }) => {
<TouchableOpacity style={styles.optionButton} onPress={() => handleOptionSelect('cropRotationPlan')}> <TouchableOpacity style={styles.optionButton} onPress={() => handleOptionSelect('cropRotationPlan')}>
<Text style={styles.optionText}>Crop Rotation Plan</Text> <Text style={styles.optionText}>Crop Rotation Plan</Text>
</TouchableOpacity> </TouchableOpacity>
<TouchableOpacity style={styles.optionButton} onPress={() => handleOptionSelect('nutrientSlider')}>
<Text style={styles.optionText}>Agri Expert Solution</Text>
</TouchableOpacity>
<TouchableOpacity style={styles.optionButton} onPress={() => handleOptionSelect('customCropSelect')}>
<Text style={styles.optionText}>Select a Crop</Text>
</TouchableOpacity>
</View> </View>
</ImageBackground> </ImageBackground>
); );
......
import React, { useState, useEffect } from 'react';
import { View, Text, FlatList, StyleSheet, ActivityIndicator, TouchableOpacity, ImageBackground } from 'react-native';
import axios from 'axios';
import { useRoute } from '@react-navigation/native';
const CustomCrop = () => {
const [data, setData] = useState({});
const [loading, setLoading] = useState(true);
const [selectedNutrient, setSelectedNutrient] = useState(null);
const route = useRoute();
const { userNpkData, crop } = route.params;
console.log("npk data :",userNpkData.Nitrogen);
useEffect(() => {
axios.post('http://127.0.0.1:5000/balancesoil', {
N: userNpkData.Nitrogen,
P: userNpkData.Phosphorus,
K: userNpkData.Potassium,
crop: crop.toLowerCase(),
})
.then(response => {
setData(response.data);
setLoading(false);
})
.catch(error => {
console.error('Error fetching data:', error);
setLoading(false);
});
}, []);
const renderNutrientItem = (nutrient) => {
return (
<View>
<Text style={styles.label}>Your Crop:{crop}</Text>
<TouchableOpacity onPress={() => setSelectedNutrient(nutrient)}>
<View style={styles.nutrientItem}>
<Text style={styles.label}>Nutrient:</Text>
<Text style={styles.value}>{nutrient}</Text>
<Text style={styles.label}>Amount:</Text>
<Text style={styles.value}>{data[nutrient]}</Text>
</View>
</TouchableOpacity>
</View>
);
};
const renderInstructions = (instructions) => {
return (
<View style={styles.instructionContainer}>
<FlatList
data={instructions}
keyExtractor={(item, index) => index.toString()}
renderItem={({ item }) => (
<View style={styles.instructionItem}>
<Text style={styles.label}>Description:</Text>
<Text style={styles.value}>{item.description}</Text>
<Text style={styles.label}>Recommended Application:</Text>
<Text style={styles.value}>{item.recommendedApplication || 'Not specified'}</Text>
</View>
)}
/>
<TouchableOpacity onPress={() => setSelectedNutrient(null)}>
<Text style={styles.closeButton}>Close</Text>
</TouchableOpacity>
</View>
);
};
return (
<View style={styles.container}>
<ImageBackground source={require('../../assets/backgroudManualData.jpg')} style={styles.backgroundImage}>
{loading ? (
<ActivityIndicator size="large" color="#007BFF" />
) : (
<View>
{selectedNutrient ? (
renderInstructions(data[`${selectedNutrient}_instructions`])
) : (
<FlatList
data={Object.keys(data).filter(nutrient => nutrient.endsWith('_instructions'))}
keyExtractor={(item) => item}
renderItem={({ item }) => renderNutrientItem(item.replace('_instructions', ''))}
/>
)}
</View>
)}
</ImageBackground>
</View>
);
};
const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'center',
alignItems: 'center',
position: 'relative',
width: '100%',
height: '100%',
},
backgroundImage: {
position: 'absolute',
top: 0,
left: 0,
width: '100%',
height: '100%',
resizeMode: 'cover',
},
nutrientItem: {
marginVertical: 5,
backgroundColor: 'white',
padding: 10,
borderRadius: 8,
shadowColor: '#000',
shadowOffset: {
width: 0,
height: 2,
},
shadowOpacity: 0.25,
shadowRadius: 3.84,
elevation: 5,
margin:20
},
instructionContainer: {
marginVertical: 5,
backgroundColor: 'white',
padding: 10,
borderRadius: 8,
shadowColor: '#000',
shadowOffset: {
width: 0,
height: 2,
},
shadowOpacity: 0.25,
shadowRadius: 3.84,
elevation: 5,
margin:20
},
instructionItem: {
marginVertical: 5,
backgroundColor: 'white',
padding: 10,
borderRadius: 8,
shadowColor: '#000',
shadowOffset: {
width: 0,
height: 2,
},
shadowOpacity: 0.25,
shadowRadius: 3.84,
elevation: 5,
},
label: {
fontWeight: 'bold',
},
value: {
fontSize: 16,
},
closeButton: {
color: 'blue',
textAlign: 'center',
marginTop: 10,
},
});
export default CustomCrop;
import axios from 'axios';
import React, { useState } from 'react';
import { View, Text, TouchableOpacity, StyleSheet, ImageBackground } from 'react-native';
const CropList = ['Wheat', 'Corn', 'Rice', 'Potato', 'Soybeans'];
const CustomCropSelect = ({ navigation }) => {
const [selectedCrop, setSelectedCrop] = useState(null);
const handleCropSelect = (crop) => {
setSelectedCrop(crop);
};
const handleNextPage = async() => {
if (selectedCrop) {
const npkData = await handleArduinoRequest()
console.log("handle next page:",npkData);
navigation.navigate('Test Custom Crop', {
crop: selectedCrop,
userNpkData: npkData,
});
}
};
const handleArduinoRequest = async () => {
console.log("arduino hit in custom crop select");
try {
const response = await axios.get('http://192.168.254.241');
const userNpkData = response.data;
return userNpkData;
} catch (error) {
console.log(error);
throw error;
}
};
return (
<ImageBackground
source={require('../../assets/backgroudManualData.jpg')}
style={styles.backgroundImage}
imageStyle={{ opacity: 0.2 }}
>
<View style={styles.container}>
<Text style={styles.label}>Select a Crop:</Text>
{CropList.map((crop, index) => (
<TouchableOpacity
key={index}
onPress={() => handleCropSelect(crop)}
style={[
styles.cropItem,
{ backgroundColor: selectedCrop === crop ? '#007BFF' : 'gray' },
]}
>
<Text style={styles.cropText}>{crop}</Text>
</TouchableOpacity>
))}
<TouchableOpacity
style={[
styles.button,
{ backgroundColor: selectedCrop ? 'green' : 'gray' },
]}
disabled={!selectedCrop}
onPress={handleNextPage}
>
<Text style={styles.buttonText}>Find the deficiencies in your soil</Text>
</TouchableOpacity>
</View>
</ImageBackground>
);
};
const styles = StyleSheet.create({
container: {
flex: 1,
padding: 20,
alignItems: 'center',
justifyContent: 'center',
},
label: {
fontSize: 28,
fontWeight: 'bold',
color: 'white',
marginBottom: 10,
marginBottom: 40,
},
cropItem: {
padding: 15,
marginVertical: 10,
borderRadius: 10,
width: '80%',
},
cropText: {
color: 'white',
fontSize: 16,
textAlign: 'center',
},
backgroundImage: {
flex: 1,
resizeMode: 'cover',
justifyContent: 'center',
backgroundColor: 'rgba(0,0,0,0.8)',
},
button: {
padding: 10,
borderRadius: 10,
width: '100%',
marginTop: 40
},
buttonText: {
color: 'white',
fontSize: 18,
textAlign: 'center',
},
});
export default CustomCropSelect;
...@@ -7,19 +7,25 @@ const ManualSoilData = ({navigation}) => { ...@@ -7,19 +7,25 @@ const ManualSoilData = ({navigation}) => {
const [potassiumLevel, setPotassiumLevel] = useState(""); const [potassiumLevel, setPotassiumLevel] = useState("");
const handleAddLevels = () => { const handleAddLevels = () => {
const parsedNitrogenLevel = parseFloat(nitrogenLevel); const parsedNitrogenLevel = parseFloat(nitrogenLevel);
const parsedPhosphorusLevel = parseFloat(phosphorusLevel); const parsedPhosphorusLevel = parseFloat(phosphorusLevel);
const parsedPotassiumLevel = parseFloat(potassiumLevel); const parsedPotassiumLevel = parseFloat(potassiumLevel);
const userNpkData={ const totalNpk = parsedNitrogenLevel + parsedPhosphorusLevel + parsedPotassiumLevel;
Nitrogen:parsedNitrogenLevel,
Phosphorus:parsedPhosphorusLevel, if (totalNpk > 10) {
Potassium:parsedPotassiumLevel alert('Total nitrogen, phosphorus, and potassium levels cannot exceed 10');
} else {
const userNpkData = {
Nitrogen: parsedNitrogenLevel,
Phosphorus: parsedPhosphorusLevel,
Potassium: parsedPotassiumLevel,
};
console.log(userNpkData);
navigation.navigate("Most Suitable Crops", { userNpkData });
} }
console.log(userNpkData);
navigation.navigate("Most Suitable Crops",{userNpkData})
}; };
return ( return (
<View style={styles.container}> <View style={styles.container}>
......
...@@ -4,33 +4,23 @@ import axios from 'axios'; ...@@ -4,33 +4,23 @@ import axios from 'axios';
import { useRoute } from '@react-navigation/native'; import { useRoute } from '@react-navigation/native';
import BackgroundImage from '../../assets/backgroudManualData.jpg'; import BackgroundImage from '../../assets/backgroudManualData.jpg';
import cropImages from '../common/Images'; import cropImages from '../common/Images';
import cropDescription from '../common/Description';
const MostSuitableCrops = () => { const MostSuitableCrops = () => {
const [cropData, setCropData] = useState(null); const [cropData, setCropData] = useState(null);
const [isLoading, setIsLoading] = useState(true); // Set initial loading state to true const [isLoading, setIsLoading] = useState(true);
const [mapObject, setMapObject] = useState({}); const [selectedCrop, setSelectedCrop] = useState(null);
const route = useRoute(); const route = useRoute();
const { userNpkData } = route.params; const { userNpkData } = route.params;
// const handleArduinoClick = async () => {
// await axios.get('http://192.168.89.241')
// .then(res => {
// setCropData(res.data);
// })
// .catch(err => {
// console.log(err);
// });
// };
useEffect(() => { useEffect(() => {
const timer = setTimeout(() => { const timer = setTimeout(() => {
setIsLoading(false); setIsLoading(false);
}, 3000); }, 3000);
return () => clearTimeout(timer); return () => clearTimeout(timer);
}, []); }, []);
useEffect(() => { useEffect(() => {
const fetchCropData = async () => { const fetchCropData = async () => {
try { try {
...@@ -40,7 +30,7 @@ const MostSuitableCrops = () => { ...@@ -40,7 +30,7 @@ const MostSuitableCrops = () => {
K: userNpkData['Potassium'] K: userNpkData['Potassium']
}); });
const responseData = response.data; const responseData = response.data;
console.log("res data",responseData); console.log("res data", responseData);
setCropData(responseData); setCropData(responseData);
} catch (error) { } catch (error) {
console.error('Error fetching crop data:', error); console.error('Error fetching crop data:', error);
...@@ -52,8 +42,6 @@ const MostSuitableCrops = () => { ...@@ -52,8 +42,6 @@ const MostSuitableCrops = () => {
fetchCropData(); fetchCropData();
}, []); }, []);
return ( return (
<ImageBackground source={BackgroundImage} style={styles.backgroundImage}> <ImageBackground source={BackgroundImage} style={styles.backgroundImage}>
<View style={styles.container}> <View style={styles.container}>
...@@ -67,20 +55,36 @@ const MostSuitableCrops = () => { ...@@ -67,20 +55,36 @@ const MostSuitableCrops = () => {
<Text style={styles.title}>Most Suitable Crops:</Text> <Text style={styles.title}>Most Suitable Crops:</Text>
<View style={styles.cropContainer}> <View style={styles.cropContainer}>
{cropData.top_three_crops.map((cropInfo) => ( {cropData.top_three_crops.map((cropInfo) => (
<View key={cropInfo.crop} style={styles.cropItem}> <TouchableOpacity
key={cropInfo.crop}
style={styles.cropItem}
onPress={() => setSelectedCrop(cropInfo)}
>
<Image source={cropImages[cropInfo.crop]} style={styles.cropImage} /> <Image source={cropImages[cropInfo.crop]} style={styles.cropImage} />
<Text style={styles.cropText}>{cropInfo.crop}</Text> <Text style={styles.cropText}>{cropInfo.crop}</Text>
</View> </TouchableOpacity>
))} ))}
</View> </View>
<View style={styles.nutrientContainer}> <View style={styles.nutrientContainer}>
<Text style={styles.nutrientTitle}>Nutrient Values Present in Your Soil:</Text> <Text style={styles.nutrientTitle}>Nutrient Values Present in Your Soil:</Text>
<Text style={styles.nutrientText}>Nitrogen (N): {userNpkData.Nitrogen}</Text> <Text style={styles.nutrientText}>Nitrogen (N): {userNpkData.Nitrogen} mg/kg</Text>
<Text style={styles.nutrientText}>Phosphorus (P): {userNpkData.Phosphorus}</Text> <Text style={styles.nutrientText}>Phosphorus (P): {userNpkData.Phosphorus} mg/kg</Text>
<Text style={styles.nutrientText}>Potassium (K): {userNpkData.Potassium}</Text> <Text style={styles.nutrientText}>Potassium (K): {userNpkData.Potassium} mg/kg</Text>
</View> </View>
</View> </View>
) : null} ) : null}
{selectedCrop && (
<View style={styles.cropDescriptionContainer}>
<Text style={styles.cropDescriptionTitle}>How to Grow {selectedCrop.crop}:</Text>
<Text style={styles.cropDescriptionText}>{cropDescription[selectedCrop.crop]}</Text>
<TouchableOpacity
style={styles.closeButton}
onPress={() => setSelectedCrop(null)}
>
<Text style={styles.closeButtonText}>Close</Text>
</TouchableOpacity>
</View>
)}
</View> </View>
</ImageBackground> </ImageBackground>
); );
...@@ -97,7 +101,7 @@ const styles = StyleSheet.create({ ...@@ -97,7 +101,7 @@ const styles = StyleSheet.create({
justifyContent: 'center', justifyContent: 'center',
alignItems: 'center', alignItems: 'center',
padding: 20, padding: 20,
backgroundColor: 'rgba(0, 0, 0, 0.5)', // Add opacity to the background color backgroundColor: 'rgba(0, 0, 0, 0.5)',
}, },
card: { card: {
backgroundColor: '#fff', backgroundColor: '#fff',
...@@ -178,6 +182,36 @@ const styles = StyleSheet.create({ ...@@ -178,6 +182,36 @@ const styles = StyleSheet.create({
textTransform: 'capitalize', textTransform: 'capitalize',
fontWeight: 'bold', fontWeight: 'bold',
}, },
cropDescriptionContainer: {
marginTop: 20,
backgroundColor: '#fff',
borderRadius: 10,
padding: 20,
},
cropDescriptionTitle: {
fontSize: 16,
fontWeight: 'bold',
marginBottom: 10,
color: '#333',
},
cropDescriptionText: {
fontSize: 14,
marginBottom: 10,
color: '#333',
textAlign: 'left',
},
closeButton: {
backgroundColor: '#007AFF',
padding: 10,
borderRadius: 5,
marginTop: 10,
},
closeButtonText: {
color: '#fff',
fontSize: 16,
fontWeight: 'bold',
textAlign: 'center',
},
}); });
export default MostSuitableCrops; export default MostSuitableCrops;
...@@ -7,15 +7,14 @@ const SoilDataOptions = ({ navigation }) => { ...@@ -7,15 +7,14 @@ const SoilDataOptions = ({ navigation }) => {
const [isLoading, setIsLoading] = useState(false); const [isLoading, setIsLoading] = useState(false);
const handleArduinoRequest = async () => { const handleArduinoRequest = async () => {
console.log("arduino hit");
setIsLoading(true); setIsLoading(true);
try { try {
const response = await axios.get('http://192.168.73.241'); const response = await axios.get('http://192.168.254.241');
const userNpkData = response.data; const userNpkData = response.data;
setCropData(userNpkData); setCropData(userNpkData);
console.log(userNpkData); console.log(userNpkData);
navigation.navigate("Most Suitable Crops", { userNpkData }); navigation.navigate("Most Suitable Crops", { userNpkData });
} catch (error) { } catch (error) {
console.log(error); console.log(error);
...@@ -23,6 +22,7 @@ const SoilDataOptions = ({ navigation }) => { ...@@ -23,6 +22,7 @@ const SoilDataOptions = ({ navigation }) => {
setIsLoading(false); setIsLoading(false);
} }
} }
return ( return (
<View style={styles.container}> <View style={styles.container}>
......
import React from 'react';
import { View } from 'react-native';
import { Button, NativeBaseProvider } from "native-base";
import { NativeBaseConfigProvider } from 'native-base/src/core/NativeBaseContext';
const TestWithButton = ({navigation}) => {
return (
<NativeBaseConfigProvider>
<NativeBaseProvider>
<Button onPress={()=>navigation.navigate("Test")}>click</Button>
</NativeBaseProvider>
</NativeBaseConfigProvider>
);
};
export default TestWithButton;
\ No newline at end of file
...@@ -3606,6 +3606,11 @@ ...@@ -3606,6 +3606,11 @@
"joi": "^17.2.1" "joi": "^17.2.1"
} }
}, },
"@react-native-picker/picker": {
"version": "2.5.1",
"resolved": "https://registry.npmjs.org/@react-native-picker/picker/-/picker-2.5.1.tgz",
"integrity": "sha512-/sADUfQsosMRYtrqqL3ZYZSECRygj0fXtpRLqxJfwuMEoqfvfn40756R6B1alzusVvDRZFI0ari0iQid56hA/Q=="
},
"@react-native/assets": { "@react-native/assets": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/@react-native/assets/-/assets-1.0.0.tgz", "resolved": "https://registry.npmjs.org/@react-native/assets/-/assets-1.0.0.tgz",
...@@ -3641,6 +3646,8 @@ ...@@ -3641,6 +3646,8 @@
}, },
"@react-navigation/native": { "@react-navigation/native": {
"version": "6.1.6", "version": "6.1.6",
"resolved": "https://registry.npmjs.org/@react-navigation/native/-/native-6.1.6.tgz",
"integrity": "sha512-14PmSy4JR8HHEk04QkxQ0ZLuqtiQfb4BV9kkMXD2/jI4TZ+yc43OnO6fQ2o9wm+Bq8pY3DxyerC2AjNUz+oH7Q==",
"requires": { "requires": {
"@react-navigation/core": "^6.4.8", "@react-navigation/core": "^6.4.8",
"escape-string-regexp": "^4.0.0", "escape-string-regexp": "^4.0.0",
...@@ -3650,6 +3657,8 @@ ...@@ -3650,6 +3657,8 @@
}, },
"@react-navigation/native-stack": { "@react-navigation/native-stack": {
"version": "6.9.12", "version": "6.9.12",
"resolved": "https://registry.npmjs.org/@react-navigation/native-stack/-/native-stack-6.9.12.tgz",
"integrity": "sha512-kS2zXCWP0Rgt7uWaCUKrRl7U2U1Gp19rM1kyRY2YzBPXhWGVPjQ2ygBp88CTQzjgy8M07H/79jvGiZ0mlEJI+g==",
"requires": { "requires": {
"@react-navigation/elements": "^1.3.17", "@react-navigation/elements": "^1.3.17",
"warn-once": "^0.1.0" "warn-once": "^0.1.0"
...@@ -4439,14 +4448,6 @@ ...@@ -4439,14 +4448,6 @@
"resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
"integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg=="
}, },
"axios": {
"version": "1.4.0",
"requires": {
"follow-redirects": "^1.15.0",
"form-data": "^4.0.0",
"proxy-from-env": "^1.1.0"
}
},
"babel-core": { "babel-core": {
"version": "7.0.0-bridge.0", "version": "7.0.0-bridge.0",
"resolved": "https://registry.npmjs.org/babel-core/-/babel-core-7.0.0-bridge.0.tgz", "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-7.0.0-bridge.0.tgz",
...@@ -5549,6 +5550,8 @@ ...@@ -5549,6 +5550,8 @@
}, },
"expo": { "expo": {
"version": "48.0.17", "version": "48.0.17",
"resolved": "https://registry.npmjs.org/expo/-/expo-48.0.17.tgz",
"integrity": "sha512-5T1CsMUlfI+xFB89GOU+/xtSSbSBBFVTqwgheAU0cQolfbs+YyJCMTKU5vN45N5OK+ym7p/LKPa6DQAxYPF8YQ==",
"requires": { "requires": {
"@babel/runtime": "^7.20.0", "@babel/runtime": "^7.20.0",
"@expo/cli": "0.7.1", "@expo/cli": "0.7.1",
...@@ -5675,7 +5678,9 @@ ...@@ -5675,7 +5678,9 @@
} }
}, },
"expo-status-bar": { "expo-status-bar": {
"version": "1.4.4" "version": "1.4.4",
"resolved": "https://registry.npmjs.org/expo-status-bar/-/expo-status-bar-1.4.4.tgz",
"integrity": "sha512-5DV0hIEWgatSC3UgQuAZBoQeaS9CqeWRZ3vzBR9R/+IUD87Adbi4FGhU10nymRqFXOizGsureButGZIXPs7zEA=="
}, },
"extend-shallow": { "extend-shallow": {
"version": "3.0.2", "version": "3.0.2",
...@@ -5945,6 +5950,8 @@ ...@@ -5945,6 +5950,8 @@
}, },
"firebase": { "firebase": {
"version": "9.22.0", "version": "9.22.0",
"resolved": "https://registry.npmjs.org/firebase/-/firebase-9.22.0.tgz",
"integrity": "sha512-Ay1u8IOfhPh58RFAHF7A9cKHACCgV6uI2bhkzKdkjnV0n2AAxn4tDtdXvJ3BEbfhF4WWBC2dFcEXH8cd14ptaw==",
"requires": { "requires": {
"@firebase/analytics": "0.10.0", "@firebase/analytics": "0.10.0",
"@firebase/analytics-compat": "0.2.6", "@firebase/analytics-compat": "0.2.6",
...@@ -5979,11 +5986,6 @@ ...@@ -5979,11 +5986,6 @@
"resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.185.2.tgz", "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.185.2.tgz",
"integrity": "sha512-2hJ5ACYeJCzNtiVULov6pljKOLygy0zddoqSI1fFetM+XRPpRshFdGEijtqlamA1XwyZ+7rhryI6FQFzvtLWUQ==" "integrity": "sha512-2hJ5ACYeJCzNtiVULov6pljKOLygy0zddoqSI1fFetM+XRPpRshFdGEijtqlamA1XwyZ+7rhryI6FQFzvtLWUQ=="
}, },
"follow-redirects": {
"version": "1.15.2",
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz",
"integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA=="
},
"fontfaceobserver": { "fontfaceobserver": {
"version": "2.3.0", "version": "2.3.0",
"resolved": "https://registry.npmjs.org/fontfaceobserver/-/fontfaceobserver-2.3.0.tgz", "resolved": "https://registry.npmjs.org/fontfaceobserver/-/fontfaceobserver-2.3.0.tgz",
...@@ -5994,16 +5996,6 @@ ...@@ -5994,16 +5996,6 @@
"resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
"integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==" "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ=="
}, },
"form-data": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
"integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
"requires": {
"asynckit": "^0.4.0",
"combined-stream": "^1.0.8",
"mime-types": "^2.1.12"
}
},
"fragment-cache": { "fragment-cache": {
"version": "0.2.1", "version": "0.2.1",
"resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
...@@ -7919,6 +7911,8 @@ ...@@ -7919,6 +7911,8 @@
}, },
"native-base": { "native-base": {
"version": "3.4.28", "version": "3.4.28",
"resolved": "https://registry.npmjs.org/native-base/-/native-base-3.4.28.tgz",
"integrity": "sha512-EDg9UFDNmfYXPInpRbxce+4oWFEIGaM7aG6ey4hVllcvMC3PkgCvkiXEB+7EemgC7Qr8CuFjgMTx7P0vvnwZeQ==",
"requires": { "requires": {
"@react-aria/visually-hidden": "^3.2.1", "@react-aria/visually-hidden": "^3.2.1",
"@react-native-aria/button": "^0.2.4", "@react-native-aria/button": "^0.2.4",
...@@ -8538,11 +8532,6 @@ ...@@ -8538,11 +8532,6 @@
} }
} }
}, },
"proxy-from-env": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
"integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="
},
"pump": { "pump": {
"version": "3.0.0", "version": "3.0.0",
"resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
...@@ -8615,6 +8604,8 @@ ...@@ -8615,6 +8604,8 @@
}, },
"react": { "react": {
"version": "18.2.0", "version": "18.2.0",
"resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz",
"integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==",
"requires": { "requires": {
"loose-envify": "^1.1.0" "loose-envify": "^1.1.0"
} }
...@@ -8637,6 +8628,8 @@ ...@@ -8637,6 +8628,8 @@
}, },
"react-dom": { "react-dom": {
"version": "18.2.0", "version": "18.2.0",
"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz",
"integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==",
"requires": { "requires": {
"loose-envify": "^1.1.0", "loose-envify": "^1.1.0",
"scheduler": "^0.23.0" "scheduler": "^0.23.0"
...@@ -8654,6 +8647,8 @@ ...@@ -8654,6 +8647,8 @@
}, },
"react-native": { "react-native": {
"version": "0.71.8", "version": "0.71.8",
"resolved": "https://registry.npmjs.org/react-native/-/react-native-0.71.8.tgz",
"integrity": "sha512-ftMAuhpgTkbHU9brrqsEyxcNrpYvXKeATY+if22Nfhhg1zW+6wn95w9otwTnA3xHkljPCbng8mUhmmERjGEl7g==",
"requires": { "requires": {
"@jest/create-cache-key-function": "^29.2.1", "@jest/create-cache-key-function": "^29.2.1",
"@react-native-community/cli": "10.2.2", "@react-native-community/cli": "10.2.2",
...@@ -8769,10 +8764,14 @@ ...@@ -8769,10 +8764,14 @@
"integrity": "sha512-7F6bD7B8Xsn3JllxcwHhFcsl9aHIig47+3eN4IHFNqfLhZr++3ElDrcqfMzugM+niWbaMi7bJ0kAkAL8eCpdWg==" "integrity": "sha512-7F6bD7B8Xsn3JllxcwHhFcsl9aHIig47+3eN4IHFNqfLhZr++3ElDrcqfMzugM+niWbaMi7bJ0kAkAL8eCpdWg=="
}, },
"react-native-safe-area-context": { "react-native-safe-area-context": {
"version": "4.5.0" "version": "4.5.0",
"resolved": "https://registry.npmjs.org/react-native-safe-area-context/-/react-native-safe-area-context-4.5.0.tgz",
"integrity": "sha512-0WORnk9SkREGUg2V7jHZbuN5x4vcxj/1B0QOcXJjdYWrzZHgLcUzYWWIUecUPJh747Mwjt/42RZDOaFn3L8kPQ=="
}, },
"react-native-screens": { "react-native-screens": {
"version": "3.20.0", "version": "3.20.0",
"resolved": "https://registry.npmjs.org/react-native-screens/-/react-native-screens-3.20.0.tgz",
"integrity": "sha512-joWUKWAVHxymP3mL9gYApFHAsbd9L6ZcmpoZa6Sl3W/82bvvNVMqcfP7MeNqVCg73qZ8yL4fW+J/syusHleUgg==",
"requires": { "requires": {
"react-freeze": "^1.0.0", "react-freeze": "^1.0.0",
"warn-once": "^0.1.0" "warn-once": "^0.1.0"
......
...@@ -10,9 +10,10 @@ ...@@ -10,9 +10,10 @@
}, },
"dependencies": { "dependencies": {
"@expo/webpack-config": "^18.0.1", "@expo/webpack-config": "^18.0.1",
"@react-native-picker/picker": "^2.5.1",
"@react-navigation/native": "^6.1.6", "@react-navigation/native": "^6.1.6",
"@react-navigation/native-stack": "^6.9.12", "@react-navigation/native-stack": "^6.9.12",
"axios": "^1.4.0", "axios": "^1.5.0",
"expo": "~48.0.9", "expo": "~48.0.9",
"expo-status-bar": "~1.4.4", "expo-status-bar": "~1.4.4",
"firebase": "^9.18.0", "firebase": "^9.18.0",
...@@ -22,6 +23,7 @@ ...@@ -22,6 +23,7 @@
"react-native": "0.71.8", "react-native": "0.71.8",
"react-native-safe-area-context": "4.5.0", "react-native-safe-area-context": "4.5.0",
"react-native-screens": "~3.20.0", "react-native-screens": "~3.20.0",
"react-native-snap-carousel": "^3.9.1",
"react-native-svg": "^13.9.0", "react-native-svg": "^13.9.0",
"react-native-web": "~0.18.11" "react-native-web": "~0.18.11"
}, },
......
...@@ -2888,6 +2888,11 @@ ...@@ -2888,6 +2888,11 @@
prompts "^2.4.0" prompts "^2.4.0"
semver "^6.3.0" semver "^6.3.0"
"@react-native-picker/picker@^2.5.1":
version "2.5.1"
resolved "https://registry.yarnpkg.com/@react-native-picker/picker/-/picker-2.5.1.tgz#dfa13d5b97bfbedf1f7e7c608181a82f1d58b351"
integrity sha512-/sADUfQsosMRYtrqqL3ZYZSECRygj0fXtpRLqxJfwuMEoqfvfn40756R6B1alzusVvDRZFI0ari0iQid56hA/Q==
"@react-native/assets@1.0.0": "@react-native/assets@1.0.0":
version "1.0.0" version "1.0.0"
resolved "https://registry.yarnpkg.com/@react-native/assets/-/assets-1.0.0.tgz#c6f9bf63d274bafc8e970628de24986b30a55c8e" resolved "https://registry.yarnpkg.com/@react-native/assets/-/assets-1.0.0.tgz#c6f9bf63d274bafc8e970628de24986b30a55c8e"
...@@ -4068,10 +4073,10 @@ atob@^2.1.2: ...@@ -4068,10 +4073,10 @@ atob@^2.1.2:
resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9"
integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==
axios@^1.4.0: axios@^1.5.0:
version "1.4.0" version "1.5.0"
resolved "https://registry.yarnpkg.com/axios/-/axios-1.4.0.tgz#38a7bf1224cd308de271146038b551d725f0be1f" resolved "https://registry.yarnpkg.com/axios/-/axios-1.5.0.tgz#f02e4af823e2e46a9768cfc74691fdd0517ea267"
integrity sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA== integrity sha512-D4DdjDo5CY50Qms0qGQTTw6Q44jl7zRwY7bthds06pUGfChBCTcQs+N743eFWGEd6pRTMd6A+I87aWyFV5wiZQ==
dependencies: dependencies:
follow-redirects "^1.15.0" follow-redirects "^1.15.0"
form-data "^4.0.0" form-data "^4.0.0"
...@@ -4888,6 +4893,11 @@ core-js-compat@^3.25.1: ...@@ -4888,6 +4893,11 @@ core-js-compat@^3.25.1:
dependencies: dependencies:
browserslist "^4.21.5" browserslist "^4.21.5"
core-js@^1.0.0:
version "1.2.7"
resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636"
integrity sha512-ZiPp9pZlgxpWRu0M+YWbm6+aQ84XEfH1JRXvfOc/fILWI0VKhLC2LX13X1NYq4fULzLMq7Hfh43CSo2/aIaUPA==
core-util-is@~1.0.0: core-util-is@~1.0.0:
version "1.0.3" version "1.0.3"
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85"
...@@ -5385,6 +5395,13 @@ encodeurl@~1.0.2: ...@@ -5385,6 +5395,13 @@ encodeurl@~1.0.2:
resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==
encoding@^0.1.11:
version "0.1.13"
resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9"
integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==
dependencies:
iconv-lite "^0.6.2"
end-of-stream@^1.1.0: end-of-stream@^1.1.0:
version "1.4.4" version "1.4.4"
resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0"
...@@ -5828,6 +5845,19 @@ fbjs-css-vars@^1.0.0: ...@@ -5828,6 +5845,19 @@ fbjs-css-vars@^1.0.0:
resolved "https://registry.yarnpkg.com/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz#216551136ae02fe255932c3ec8775f18e2c078b8" resolved "https://registry.yarnpkg.com/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz#216551136ae02fe255932c3ec8775f18e2c078b8"
integrity sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ== integrity sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ==
fbjs@^0.8.4:
version "0.8.18"
resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.18.tgz#9835e0addb9aca2eff53295cd79ca1cfc7c9662a"
integrity sha512-EQaWFK+fEPSoibjNy8IxUtaFOMXcWsY0JaVrQoZR9zC8N2Ygf9iDITPWjUTVIax95b6I742JFLqASHfsag/vKA==
dependencies:
core-js "^1.0.0"
isomorphic-fetch "^2.1.1"
loose-envify "^1.0.0"
object-assign "^4.1.0"
promise "^7.1.1"
setimmediate "^1.0.5"
ua-parser-js "^0.7.30"
fbjs@^3.0.0: fbjs@^3.0.0:
version "3.0.4" version "3.0.4"
resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-3.0.4.tgz#e1871c6bd3083bac71ff2da868ad5067d37716c6" resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-3.0.4.tgz#e1871c6bd3083bac71ff2da868ad5067d37716c6"
...@@ -6498,7 +6528,7 @@ iconv-lite@0.4.24: ...@@ -6498,7 +6528,7 @@ iconv-lite@0.4.24:
dependencies: dependencies:
safer-buffer ">= 2.1.2 < 3" safer-buffer ">= 2.1.2 < 3"
iconv-lite@^0.6.3: iconv-lite@^0.6.2, iconv-lite@^0.6.3:
version "0.6.3" version "0.6.3"
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501"
integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==
...@@ -6825,7 +6855,7 @@ is-root@^2.1.0: ...@@ -6825,7 +6855,7 @@ is-root@^2.1.0:
resolved "https://registry.yarnpkg.com/is-root/-/is-root-2.1.0.tgz#809e18129cf1129644302a4f8544035d51984a9c" resolved "https://registry.yarnpkg.com/is-root/-/is-root-2.1.0.tgz#809e18129cf1129644302a4f8544035d51984a9c"
integrity sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg== integrity sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==
is-stream@^1.1.0: is-stream@^1.0.1, is-stream@^1.1.0:
version "1.1.0" version "1.1.0"
resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
integrity sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ== integrity sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==
...@@ -6886,6 +6916,14 @@ isobject@^3.0.0, isobject@^3.0.1: ...@@ -6886,6 +6916,14 @@ isobject@^3.0.0, isobject@^3.0.1:
resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"
integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==
isomorphic-fetch@^2.1.1:
version "2.2.1"
resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9"
integrity sha512-9c4TNAKYXM5PRyVcwUZrF3W09nQ+sO7+jydgs4ZGW9dhsLG2VOlISJABombdQqQRXCwuYG3sYV/puGf5rp0qmA==
dependencies:
node-fetch "^1.0.1"
whatwg-fetch ">=0.10.0"
jest-environment-node@^29.2.1: jest-environment-node@^29.2.1:
version "29.5.0" version "29.5.0"
resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.5.0.tgz#f17219d0f0cc0e68e0727c58b792c040e332c967" resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.5.0.tgz#f17219d0f0cc0e68e0727c58b792c040e332c967"
...@@ -8061,6 +8099,14 @@ node-fetch@2.6.7: ...@@ -8061,6 +8099,14 @@ node-fetch@2.6.7:
dependencies: dependencies:
whatwg-url "^5.0.0" whatwg-url "^5.0.0"
node-fetch@^1.0.1:
version "1.7.3"
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef"
integrity sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==
dependencies:
encoding "^0.1.11"
is-stream "^1.0.1"
node-fetch@^2.2.0, node-fetch@^2.6.0, node-fetch@^2.6.1, node-fetch@^2.6.11, node-fetch@^2.6.7: node-fetch@^2.2.0, node-fetch@^2.6.0, node-fetch@^2.6.1, node-fetch@^2.6.11, node-fetch@^2.6.7:
version "2.6.11" version "2.6.11"
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.11.tgz#cde7fc71deef3131ef80a738919f999e6edfff25" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.11.tgz#cde7fc71deef3131ef80a738919f999e6edfff25"
...@@ -8852,7 +8898,7 @@ prompts@^2.3.2, prompts@^2.4.0: ...@@ -8852,7 +8898,7 @@ prompts@^2.3.2, prompts@^2.4.0:
kleur "^3.0.3" kleur "^3.0.3"
sisteransi "^1.0.5" sisteransi "^1.0.5"
prop-types@*: prop-types@*, prop-types@^15.6.1:
version "15.8.1" version "15.8.1"
resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5"
integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==
...@@ -8998,6 +9044,14 @@ rc@^1.0.1, rc@^1.1.6, rc@~1.2.7: ...@@ -8998,6 +9044,14 @@ rc@^1.0.1, rc@^1.1.6, rc@~1.2.7:
minimist "^1.2.0" minimist "^1.2.0"
strip-json-comments "~2.0.1" strip-json-comments "~2.0.1"
react-addons-shallow-compare@15.6.2:
version "15.6.2"
resolved "https://registry.yarnpkg.com/react-addons-shallow-compare/-/react-addons-shallow-compare-15.6.2.tgz#198a00b91fc37623db64a28fd17b596ba362702f"
integrity sha512-yAV9tOObmKPiohqne1jiMcx6kDjfz7GeL8K9KHgI+HvDsbrRv148uyUzrPc6GwepZnQcJ59Q3lp1ghrkyPwtjg==
dependencies:
fbjs "^0.8.4"
object-assign "^4.1.0"
react-devtools-core@^4.26.1: react-devtools-core@^4.26.1:
version "4.27.7" version "4.27.7"
resolved "https://registry.yarnpkg.com/react-devtools-core/-/react-devtools-core-4.27.7.tgz#458a6541483078d60a036c75bf88f54c478086ec" resolved "https://registry.yarnpkg.com/react-devtools-core/-/react-devtools-core-4.27.7.tgz#458a6541483078d60a036c75bf88f54c478086ec"
...@@ -9062,6 +9116,14 @@ react-native-screens@~3.20.0: ...@@ -9062,6 +9116,14 @@ react-native-screens@~3.20.0:
react-freeze "^1.0.0" react-freeze "^1.0.0"
warn-once "^0.1.0" warn-once "^0.1.0"
react-native-snap-carousel@^3.9.1:
version "3.9.1"
resolved "https://registry.yarnpkg.com/react-native-snap-carousel/-/react-native-snap-carousel-3.9.1.tgz#6fd9bd8839546c2c6043a41d2035afbc6fe0443e"
integrity sha512-xWEGusacIgK1YaDXLi7Gao2+ISLoGPVEBR8fcMf4tOOJQufutlNwkoLu0l6B8Qgsrre0nTxoVZikRgGRDWlLaQ==
dependencies:
prop-types "^15.6.1"
react-addons-shallow-compare "15.6.2"
react-native-svg@^13.9.0: react-native-svg@^13.9.0:
version "13.13.0" version "13.13.0"
resolved "https://registry.yarnpkg.com/react-native-svg/-/react-native-svg-13.13.0.tgz#23dedb4594dcc44128d63fa5b13c49534187fef5" resolved "https://registry.yarnpkg.com/react-native-svg/-/react-native-svg-13.13.0.tgz#23dedb4594dcc44128d63fa5b13c49534187fef5"
...@@ -10718,6 +10780,11 @@ websocket-extensions@>=0.1.1: ...@@ -10718,6 +10780,11 @@ websocket-extensions@>=0.1.1:
resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42"
integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==
whatwg-fetch@>=0.10.0:
version "3.6.19"
resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.6.19.tgz#caefd92ae630b91c07345537e67f8354db470973"
integrity sha512-d67JP4dHSbm2TrpFj8AbO8DnL1JXL5J9u0Kq2xW6d0TFDbCA3Muhdt8orXC22utleTVj7Prqt82baN6RBvnEgw==
whatwg-fetch@^3.0.0: whatwg-fetch@^3.0.0:
version "3.6.2" version "3.6.2"
resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz#dced24f37f2624ed0281725d51d0e2e3fe677f8c" resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz#dced24f37f2624ed0281725d51d0e2e3fe677f8c"
......
<component name="InspectionProjectProfileManager">
<settings>
<option name="USE_PROJECT_PROFILE" value="false" />
<version value="1.0" />
</settings>
</component>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.11 (soil-component-BE)" project-jdk-type="Python SDK" />
<component name="PyCharmProfessionalAdvertiser">
<option name="shown" value="true" />
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/soil-component-BE.iml" filepath="$PROJECT_DIR$/.idea/soil-component-BE.iml" />
</modules>
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<module type="PYTHON_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$">
<excludeFolder url="file://$MODULE_DIR$/env" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$/../.." vcs="Git" />
</component>
</project>
\ No newline at end of file
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "c87b37fe",
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"from sklearn.ensemble import RandomForestClassifier\n",
"from sklearn.model_selection import train_test_split"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "c9e9167f",
"metadata": {},
"outputs": [],
"source": [
"data = pd.read_csv('soil_crop.csv')"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "5974477b",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>nitrogen</th>\n",
" <th>phosphorus</th>\n",
" <th>potassium</th>\n",
" <th>crop</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>90</td>\n",
" <td>42</td>\n",
" <td>43</td>\n",
" <td>rice</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>85</td>\n",
" <td>58</td>\n",
" <td>41</td>\n",
" <td>rice</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>60</td>\n",
" <td>55</td>\n",
" <td>44</td>\n",
" <td>rice</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>74</td>\n",
" <td>35</td>\n",
" <td>40</td>\n",
" <td>rice</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>78</td>\n",
" <td>42</td>\n",
" <td>42</td>\n",
" <td>rice</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2195</th>\n",
" <td>107</td>\n",
" <td>34</td>\n",
" <td>32</td>\n",
" <td>potato</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2196</th>\n",
" <td>99</td>\n",
" <td>15</td>\n",
" <td>27</td>\n",
" <td>potato</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2197</th>\n",
" <td>118</td>\n",
" <td>33</td>\n",
" <td>30</td>\n",
" <td>potato</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2198</th>\n",
" <td>117</td>\n",
" <td>32</td>\n",
" <td>34</td>\n",
" <td>potato</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2199</th>\n",
" <td>104</td>\n",
" <td>18</td>\n",
" <td>30</td>\n",
" <td>potato</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>2200 rows × 4 columns</p>\n",
"</div>"
],
"text/plain": [
" nitrogen phosphorus potassium crop\n",
"0 90 42 43 rice\n",
"1 85 58 41 rice\n",
"2 60 55 44 rice\n",
"3 74 35 40 rice\n",
"4 78 42 42 rice\n",
"... ... ... ... ...\n",
"2195 107 34 32 potato\n",
"2196 99 15 27 potato\n",
"2197 118 33 30 potato\n",
"2198 117 32 34 potato\n",
"2199 104 18 30 potato\n",
"\n",
"[2200 rows x 4 columns]"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "455f745d",
"metadata": {},
"outputs": [],
"source": [
"X = data[['nitrogen', 'phosphorus', 'potassium']]\n",
"y = data['crop']"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "a87a968f",
"metadata": {},
"outputs": [],
"source": [
"X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "cfcf34d4",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<style>#sk-container-id-1 {color: black;background-color: white;}#sk-container-id-1 pre{padding: 0;}#sk-container-id-1 div.sk-toggleable {background-color: white;}#sk-container-id-1 label.sk-toggleable__label {cursor: pointer;display: block;width: 100%;margin-bottom: 0;padding: 0.3em;box-sizing: border-box;text-align: center;}#sk-container-id-1 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-1 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-1 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-1 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-1 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-1 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-1 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-1 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 input.sk-hidden--visually {border: 0;clip: rect(1px 1px 1px 1px);clip: rect(1px, 1px, 1px, 1px);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;}#sk-container-id-1 div.sk-estimator {font-family: monospace;background-color: #f0f8ff;border: 1px dotted black;border-radius: 0.25em;box-sizing: border-box;margin-bottom: 0.5em;}#sk-container-id-1 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-1 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-1 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 div.sk-serial::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: 0;}#sk-container-id-1 div.sk-serial {display: flex;flex-direction: column;align-items: center;background-color: white;padding-right: 0.2em;padding-left: 0.2em;position: relative;}#sk-container-id-1 div.sk-item {position: relative;z-index: 1;}#sk-container-id-1 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-1 div.sk-item::before, #sk-container-id-1 div.sk-parallel-item::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: -1;}#sk-container-id-1 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-1 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-1 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-1 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-1 div.sk-dashed-wrapped {border: 1px dashed gray;margin: 0 0.4em 0.5em 0.4em;box-sizing: border-box;padding-bottom: 0.4em;background-color: white;}#sk-container-id-1 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-1 div.sk-label-container {text-align: center;}#sk-container-id-1 div.sk-container {/* jupyter's `normalize.less` sets `[hidden] { display: none; }` but bootstrap.min.css set `[hidden] { display: none !important; }` so we also need the `!important` here to be able to override the default hidden behavior on the sphinx rendered scikit-learn.org. See: https://github.com/scikit-learn/scikit-learn/issues/21755 */display: inline-block !important;position: relative;}#sk-container-id-1 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-1\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>RandomForestClassifier()</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-1\" type=\"checkbox\" checked><label for=\"sk-estimator-id-1\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">RandomForestClassifier</label><div class=\"sk-toggleable__content\"><pre>RandomForestClassifier()</pre></div></div></div></div></div>"
],
"text/plain": [
"RandomForestClassifier()"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"rf_model = RandomForestClassifier()\n",
"rf_model.fit(X_train, y_train)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "50fac374",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>nitrogen</th>\n",
" <th>phosphorus</th>\n",
" <th>potassium</th>\n",
" <th>crop</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>90</td>\n",
" <td>42</td>\n",
" <td>43</td>\n",
" <td>rice</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>85</td>\n",
" <td>58</td>\n",
" <td>41</td>\n",
" <td>rice</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>60</td>\n",
" <td>55</td>\n",
" <td>44</td>\n",
" <td>rice</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>74</td>\n",
" <td>35</td>\n",
" <td>40</td>\n",
" <td>rice</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>78</td>\n",
" <td>42</td>\n",
" <td>42</td>\n",
" <td>rice</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2195</th>\n",
" <td>107</td>\n",
" <td>34</td>\n",
" <td>32</td>\n",
" <td>potato</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2196</th>\n",
" <td>99</td>\n",
" <td>15</td>\n",
" <td>27</td>\n",
" <td>potato</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2197</th>\n",
" <td>118</td>\n",
" <td>33</td>\n",
" <td>30</td>\n",
" <td>potato</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2198</th>\n",
" <td>117</td>\n",
" <td>32</td>\n",
" <td>34</td>\n",
" <td>potato</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2199</th>\n",
" <td>104</td>\n",
" <td>18</td>\n",
" <td>30</td>\n",
" <td>potato</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>2200 rows × 4 columns</p>\n",
"</div>"
],
"text/plain": [
" nitrogen phosphorus potassium crop\n",
"0 90 42 43 rice\n",
"1 85 58 41 rice\n",
"2 60 55 44 rice\n",
"3 74 35 40 rice\n",
"4 78 42 42 rice\n",
"... ... ... ... ...\n",
"2195 107 34 32 potato\n",
"2196 99 15 27 potato\n",
"2197 118 33 30 potato\n",
"2198 117 32 34 potato\n",
"2199 104 18 30 potato\n",
"\n",
"[2200 rows x 4 columns]"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "4a809283",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Accuracy: 0.6704545454545454\n"
]
}
],
"source": [
"accuracy = rf_model.score(X_test, y_test)\n",
"print(\"Accuracy:\", accuracy)\n"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "b36b162a",
"metadata": {},
"outputs": [],
"source": [
"import joblib"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "7044315c",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"['random_forest_model_v2.joblib']"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"joblib.dump(rf_model, 'random_forest_model_v2.joblib')"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "8eacdf79",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Random Forest Model Accuracy: 0.6704545454545454\n"
]
}
],
"source": [
"accuracy = rf_model.score(X_test, y_test)\n",
"print(\"Random Forest Model Accuracy:\", accuracy)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "87b3c5b3",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.10.9"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "cd33cd31",
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"from sklearn.tree import DecisionTreeClassifier\n",
"from sklearn.model_selection import train_test_split"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "4c7da288",
"metadata": {},
"outputs": [],
"source": [
"data = pd.read_csv('soil_crop.csv')"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "02b906e5",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Crop Name</th>\n",
" <th>N</th>\n",
" <th>P</th>\n",
" <th>K</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>Wheat</td>\n",
" <td>0.8</td>\n",
" <td>0.5</td>\n",
" <td>0.9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>Tomato</td>\n",
" <td>0.8</td>\n",
" <td>0.5</td>\n",
" <td>0.9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>Cotton</td>\n",
" <td>0.8</td>\n",
" <td>0.5</td>\n",
" <td>0.9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>Soybean</td>\n",
" <td>0.2</td>\n",
" <td>0.1</td>\n",
" <td>0.3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>Potato</td>\n",
" <td>0.2</td>\n",
" <td>0.1</td>\n",
" <td>0.3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>64</th>\n",
" <td>Wheat</td>\n",
" <td>30.0</td>\n",
" <td>50.0</td>\n",
" <td>20.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>65</th>\n",
" <td>Cotton</td>\n",
" <td>30.0</td>\n",
" <td>50.0</td>\n",
" <td>20.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>66</th>\n",
" <td>Tomato</td>\n",
" <td>40.0</td>\n",
" <td>30.0</td>\n",
" <td>30.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>67</th>\n",
" <td>Wheat</td>\n",
" <td>40.0</td>\n",
" <td>30.0</td>\n",
" <td>30.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>68</th>\n",
" <td>Cotton</td>\n",
" <td>40.0</td>\n",
" <td>30.0</td>\n",
" <td>30.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>69 rows × 4 columns</p>\n",
"</div>"
],
"text/plain": [
" Crop Name N P K\n",
"0 Wheat 0.8 0.5 0.9\n",
"1 Tomato 0.8 0.5 0.9\n",
"2 Cotton 0.8 0.5 0.9\n",
"3 Soybean 0.2 0.1 0.3\n",
"4 Potato 0.2 0.1 0.3\n",
".. ... ... ... ...\n",
"64 Wheat 30.0 50.0 20.0\n",
"65 Cotton 30.0 50.0 20.0\n",
"66 Tomato 40.0 30.0 30.0\n",
"67 Wheat 40.0 30.0 30.0\n",
"68 Cotton 40.0 30.0 30.0\n",
"\n",
"[69 rows x 4 columns]"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "0758b6c0",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>nitrogen</th>\n",
" <th>phosphorus</th>\n",
" <th>potassium</th>\n",
" <th>crop</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>90</td>\n",
" <td>42</td>\n",
" <td>43</td>\n",
" <td>rice</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>85</td>\n",
" <td>58</td>\n",
" <td>41</td>\n",
" <td>rice</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>60</td>\n",
" <td>55</td>\n",
" <td>44</td>\n",
" <td>rice</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>74</td>\n",
" <td>35</td>\n",
" <td>40</td>\n",
" <td>rice</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>78</td>\n",
" <td>42</td>\n",
" <td>42</td>\n",
" <td>rice</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2195</th>\n",
" <td>107</td>\n",
" <td>34</td>\n",
" <td>32</td>\n",
" <td>potato</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2196</th>\n",
" <td>99</td>\n",
" <td>15</td>\n",
" <td>27</td>\n",
" <td>potato</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2197</th>\n",
" <td>118</td>\n",
" <td>33</td>\n",
" <td>30</td>\n",
" <td>potato</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2198</th>\n",
" <td>117</td>\n",
" <td>32</td>\n",
" <td>34</td>\n",
" <td>potato</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2199</th>\n",
" <td>104</td>\n",
" <td>18</td>\n",
" <td>30</td>\n",
" <td>potato</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>2200 rows × 4 columns</p>\n",
"</div>"
],
"text/plain": [
" nitrogen phosphorus potassium crop\n",
"0 90 42 43 rice\n",
"1 85 58 41 rice\n",
"2 60 55 44 rice\n",
"3 74 35 40 rice\n",
"4 78 42 42 rice\n",
"... ... ... ... ...\n",
"2195 107 34 32 potato\n",
"2196 99 15 27 potato\n",
"2197 118 33 30 potato\n",
"2198 117 32 34 potato\n",
"2199 104 18 30 potato\n",
"\n",
"[2200 rows x 4 columns]"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "7ed8e4a3",
"metadata": {},
"outputs": [],
"source": [
"X = data[['nitrogen', 'phosphorus', 'potassium']]\n",
"y = data['crop']"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "f8a5fc9d",
"metadata": {},
"outputs": [],
"source": [
"X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "59982391",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<style>#sk-container-id-1 {color: black;background-color: white;}#sk-container-id-1 pre{padding: 0;}#sk-container-id-1 div.sk-toggleable {background-color: white;}#sk-container-id-1 label.sk-toggleable__label {cursor: pointer;display: block;width: 100%;margin-bottom: 0;padding: 0.3em;box-sizing: border-box;text-align: center;}#sk-container-id-1 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-1 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-1 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-1 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-1 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-1 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-1 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-1 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 input.sk-hidden--visually {border: 0;clip: rect(1px 1px 1px 1px);clip: rect(1px, 1px, 1px, 1px);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;}#sk-container-id-1 div.sk-estimator {font-family: monospace;background-color: #f0f8ff;border: 1px dotted black;border-radius: 0.25em;box-sizing: border-box;margin-bottom: 0.5em;}#sk-container-id-1 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-1 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-1 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 div.sk-serial::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: 0;}#sk-container-id-1 div.sk-serial {display: flex;flex-direction: column;align-items: center;background-color: white;padding-right: 0.2em;padding-left: 0.2em;position: relative;}#sk-container-id-1 div.sk-item {position: relative;z-index: 1;}#sk-container-id-1 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-1 div.sk-item::before, #sk-container-id-1 div.sk-parallel-item::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: -1;}#sk-container-id-1 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-1 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-1 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-1 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-1 div.sk-dashed-wrapped {border: 1px dashed gray;margin: 0 0.4em 0.5em 0.4em;box-sizing: border-box;padding-bottom: 0.4em;background-color: white;}#sk-container-id-1 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-1 div.sk-label-container {text-align: center;}#sk-container-id-1 div.sk-container {/* jupyter's `normalize.less` sets `[hidden] { display: none; }` but bootstrap.min.css set `[hidden] { display: none !important; }` so we also need the `!important` here to be able to override the default hidden behavior on the sphinx rendered scikit-learn.org. See: https://github.com/scikit-learn/scikit-learn/issues/21755 */display: inline-block !important;position: relative;}#sk-container-id-1 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-1\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>DecisionTreeClassifier()</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-1\" type=\"checkbox\" checked><label for=\"sk-estimator-id-1\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">DecisionTreeClassifier</label><div class=\"sk-toggleable__content\"><pre>DecisionTreeClassifier()</pre></div></div></div></div></div>"
],
"text/plain": [
"DecisionTreeClassifier()"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"dt_model = DecisionTreeClassifier()\n",
"dt_model.fit(X_train, y_train)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "9409185d",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Decision Tree Accuracy: 0.6295454545454545\n"
]
}
],
"source": [
"accuracy = dt_model.score(X_test, y_test)\n",
"print(\"Decision Tree Accuracy:\", accuracy)"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "6885a6f6",
"metadata": {},
"outputs": [],
"source": [
"y_prob = dt_model.predict_proba(X_test)"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "b94443e4",
"metadata": {},
"outputs": [],
"source": [
"top_crops = pd.DataFrame(y_prob, columns=dt_model.classes_).apply(lambda x: x.nlargest(3).index.tolist(), axis=1)"
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "bdb861e9",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Sample 1: watermelon, banana, blackgram\n",
"Sample 2: watermelon, banana, blackgram\n",
"Sample 3: papaya, banana, blackgram\n",
"Sample 4: papaya, banana, blackgram\n",
"Sample 5: rice, banana, blackgram\n",
"Sample 6: coconut, banana, blackgram\n",
"Sample 7: rice, banana, blackgram\n",
"Sample 8: mothbeans, banana, blackgram\n",
"Sample 9: mothbeans, banana, blackgram\n",
"Sample 10: lentil, banana, blackgram\n",
"Sample 11: blackgram, banana, carrot\n",
"Sample 12: mango, banana, blackgram\n",
"Sample 13: pomegranate, banana, blackgram\n",
"Sample 14: potato, banana, blackgram\n",
"Sample 15: coconut, banana, blackgram\n",
"Sample 16: pomegranate, banana, blackgram\n",
"Sample 17: carrot, banana, blackgram\n",
"Sample 18: maize, banana, blackgram\n",
"Sample 19: papaya, banana, blackgram\n",
"Sample 20: watermelon, banana, blackgram\n",
"Sample 21: potato, banana, blackgram\n",
"Sample 22: papaya, banana, blackgram\n",
"Sample 23: orange, banana, blackgram\n",
"Sample 24: papaya, banana, blackgram\n",
"Sample 25: chickpea, banana, blackgram\n",
"Sample 26: rice, banana, blackgram\n",
"Sample 27: mothbeans, banana, blackgram\n",
"Sample 28: orange, banana, blackgram\n",
"Sample 29: pigeonpeas, banana, blackgram\n",
"Sample 30: jute, banana, blackgram\n",
"Sample 31: pomegranate, banana, blackgram\n",
"Sample 32: kidneybeans, banana, blackgram\n",
"Sample 33: jute, banana, blackgram\n",
"Sample 34: lentil, banana, blackgram\n",
"Sample 35: jute, banana, blackgram\n",
"Sample 36: blackgram, banana, carrot\n",
"Sample 37: rice, banana, blackgram\n",
"Sample 38: chickpea, banana, blackgram\n",
"Sample 39: chickpea, banana, blackgram\n",
"Sample 40: lentil, banana, blackgram\n",
"Sample 41: papaya, banana, blackgram\n",
"Sample 42: coconut, banana, blackgram\n",
"Sample 43: kidneybeans, banana, blackgram\n",
"Sample 44: maize, banana, blackgram\n",
"Sample 45: mothbeans, banana, blackgram\n",
"Sample 46: maize, banana, blackgram\n",
"Sample 47: kidneybeans, banana, blackgram\n",
"Sample 48: mango, banana, blackgram\n",
"Sample 49: muskmelon, banana, blackgram\n",
"Sample 50: maize, banana, blackgram\n",
"Sample 51: lentil, banana, blackgram\n",
"Sample 52: potato, banana, blackgram\n",
"Sample 53: rice, banana, blackgram\n",
"Sample 54: mothbeans, banana, blackgram\n",
"Sample 55: potato, banana, blackgram\n",
"Sample 56: lentil, banana, blackgram\n",
"Sample 57: cotton, banana, blackgram\n",
"Sample 58: rice, banana, blackgram\n",
"Sample 59: banana, blackgram, carrot\n",
"Sample 60: lentil, banana, blackgram\n",
"Sample 61: watermelon, banana, blackgram\n",
"Sample 62: coconut, banana, blackgram\n",
"Sample 63: kidneybeans, banana, blackgram\n",
"Sample 64: orange, banana, blackgram\n",
"Sample 65: papaya, banana, blackgram\n",
"Sample 66: mothbeans, banana, blackgram\n",
"Sample 67: orange, banana, blackgram\n",
"Sample 68: rice, banana, blackgram\n",
"Sample 69: muskmelon, banana, blackgram\n",
"Sample 70: mothbeans, banana, blackgram\n",
"Sample 71: muskmelon, banana, blackgram\n",
"Sample 72: mango, banana, blackgram\n",
"Sample 73: rice, banana, blackgram\n",
"Sample 74: banana, blackgram, carrot\n",
"Sample 75: blackgram, banana, carrot\n",
"Sample 76: papaya, banana, blackgram\n",
"Sample 77: banana, blackgram, carrot\n",
"Sample 78: cotton, banana, blackgram\n",
"Sample 79: muskmelon, banana, blackgram\n",
"Sample 80: orange, banana, blackgram\n",
"Sample 81: potato, banana, blackgram\n",
"Sample 82: chickpea, banana, blackgram\n",
"Sample 83: rice, banana, blackgram\n",
"Sample 84: mungbean, banana, blackgram\n",
"Sample 85: orange, banana, blackgram\n",
"Sample 86: coconut, banana, blackgram\n",
"Sample 87: potato, banana, blackgram\n",
"Sample 88: mungbean, banana, blackgram\n",
"Sample 89: blackgram, banana, carrot\n",
"Sample 90: pomegranate, banana, blackgram\n",
"Sample 91: maize, banana, blackgram\n",
"Sample 92: mungbean, banana, blackgram\n",
"Sample 93: cotton, banana, blackgram\n",
"Sample 94: papaya, banana, blackgram\n",
"Sample 95: kidneybeans, banana, blackgram\n",
"Sample 96: mungbean, banana, blackgram\n",
"Sample 97: lentil, banana, blackgram\n",
"Sample 98: potato, banana, blackgram\n",
"Sample 99: pigeonpeas, banana, blackgram\n",
"Sample 100: mothbeans, banana, blackgram\n",
"Sample 101: coconut, banana, blackgram\n",
"Sample 102: rice, banana, blackgram\n",
"Sample 103: orange, banana, blackgram\n",
"Sample 104: muskmelon, banana, blackgram\n",
"Sample 105: watermelon, banana, blackgram\n",
"Sample 106: lentil, banana, blackgram\n",
"Sample 107: watermelon, banana, blackgram\n",
"Sample 108: banana, blackgram, carrot\n",
"Sample 109: lentil, banana, blackgram\n",
"Sample 110: mothbeans, banana, blackgram\n",
"Sample 111: banana, blackgram, carrot\n",
"Sample 112: jute, banana, blackgram\n",
"Sample 113: cotton, banana, blackgram\n",
"Sample 114: pomegranate, banana, blackgram\n",
"Sample 115: lentil, banana, blackgram\n",
"Sample 116: chickpea, banana, blackgram\n",
"Sample 117: maize, banana, blackgram\n",
"Sample 118: coconut, banana, blackgram\n",
"Sample 119: pomegranate, banana, blackgram\n",
"Sample 120: jute, banana, blackgram\n",
"Sample 121: pigeonpeas, banana, blackgram\n",
"Sample 122: carrot, banana, blackgram\n",
"Sample 123: kidneybeans, banana, blackgram\n",
"Sample 124: coconut, banana, blackgram\n",
"Sample 125: chickpea, banana, blackgram\n",
"Sample 126: blackgram, banana, carrot\n",
"Sample 127: coconut, banana, blackgram\n",
"Sample 128: maize, banana, blackgram\n",
"Sample 129: banana, blackgram, carrot\n",
"Sample 130: blackgram, banana, carrot\n",
"Sample 131: banana, blackgram, carrot\n",
"Sample 132: pigeonpeas, banana, blackgram\n",
"Sample 133: pomegranate, banana, blackgram\n",
"Sample 134: chickpea, banana, blackgram\n",
"Sample 135: coconut, banana, blackgram\n",
"Sample 136: orange, banana, blackgram\n",
"Sample 137: pigeonpeas, banana, blackgram\n",
"Sample 138: banana, blackgram, carrot\n",
"Sample 139: banana, blackgram, carrot\n",
"Sample 140: rice, banana, blackgram\n",
"Sample 141: lentil, banana, blackgram\n",
"Sample 142: muskmelon, banana, blackgram\n",
"Sample 143: mungbean, banana, blackgram\n",
"Sample 144: kidneybeans, banana, blackgram\n",
"Sample 145: coconut, banana, blackgram\n",
"Sample 146: maize, banana, blackgram\n",
"Sample 147: rice, banana, blackgram\n",
"Sample 148: coconut, banana, blackgram\n",
"Sample 149: lentil, banana, blackgram\n",
"Sample 150: mungbean, banana, blackgram\n",
"Sample 151: mothbeans, banana, blackgram\n",
"Sample 152: lentil, banana, blackgram\n",
"Sample 153: muskmelon, banana, blackgram\n",
"Sample 154: mothbeans, banana, blackgram\n",
"Sample 155: mungbean, banana, blackgram\n",
"Sample 156: kidneybeans, banana, blackgram\n",
"Sample 157: pigeonpeas, banana, blackgram\n",
"Sample 158: blackgram, banana, carrot\n",
"Sample 159: maize, banana, blackgram\n",
"Sample 160: rice, banana, blackgram\n",
"Sample 161: chickpea, banana, blackgram\n",
"Sample 162: carrot, banana, blackgram\n",
"Sample 163: orange, banana, blackgram\n",
"Sample 164: cotton, banana, blackgram\n",
"Sample 165: rice, banana, blackgram\n",
"Sample 166: coconut, banana, blackgram\n",
"Sample 167: rice, banana, blackgram\n",
"Sample 168: kidneybeans, banana, blackgram\n",
"Sample 169: muskmelon, banana, blackgram\n",
"Sample 170: carrot, banana, blackgram\n",
"Sample 171: carrot, banana, blackgram\n",
"Sample 172: blackgram, banana, carrot\n",
"Sample 173: pomegranate, banana, blackgram\n",
"Sample 174: chickpea, banana, blackgram\n",
"Sample 175: coconut, banana, blackgram\n",
"Sample 176: maize, banana, blackgram\n",
"Sample 177: pigeonpeas, banana, blackgram\n",
"Sample 178: carrot, banana, blackgram\n",
"Sample 179: muskmelon, banana, blackgram\n",
"Sample 180: rice, banana, blackgram\n",
"Sample 181: potato, banana, blackgram\n",
"Sample 182: potato, banana, blackgram\n",
"Sample 183: lentil, banana, blackgram\n",
"Sample 184: jute, banana, blackgram\n",
"Sample 185: mungbean, banana, blackgram\n",
"Sample 186: lentil, banana, blackgram\n",
"Sample 187: banana, blackgram, carrot\n",
"Sample 188: mungbean, banana, blackgram\n",
"Sample 189: coconut, banana, blackgram\n",
"Sample 190: papaya, banana, blackgram\n",
"Sample 191: papaya, banana, blackgram\n",
"Sample 192: mungbean, banana, blackgram\n",
"Sample 193: mango, banana, blackgram\n",
"Sample 194: pomegranate, banana, blackgram\n",
"Sample 195: watermelon, banana, blackgram\n",
"Sample 196: lentil, banana, blackgram\n",
"Sample 197: maize, banana, blackgram\n",
"Sample 198: carrot, banana, blackgram\n",
"Sample 199: pigeonpeas, banana, blackgram\n",
"Sample 200: chickpea, banana, blackgram\n",
"Sample 201: carrot, banana, blackgram\n",
"Sample 202: carrot, banana, blackgram\n",
"Sample 203: banana, blackgram, carrot\n",
"Sample 204: cotton, banana, blackgram\n",
"Sample 205: rice, banana, blackgram\n",
"Sample 206: pomegranate, banana, blackgram\n",
"Sample 207: mungbean, banana, blackgram\n",
"Sample 208: banana, blackgram, carrot\n",
"Sample 209: rice, banana, blackgram\n",
"Sample 210: mothbeans, banana, blackgram\n",
"Sample 211: maize, banana, blackgram\n",
"Sample 212: chickpea, banana, blackgram\n",
"Sample 213: chickpea, banana, blackgram\n",
"Sample 214: chickpea, banana, blackgram\n",
"Sample 215: carrot, banana, blackgram\n",
"Sample 216: rice, banana, blackgram\n",
"Sample 217: blackgram, banana, carrot\n",
"Sample 218: papaya, banana, blackgram\n",
"Sample 219: potato, banana, blackgram\n",
"Sample 220: blackgram, banana, carrot\n",
"Sample 221: lentil, banana, blackgram\n",
"Sample 222: mango, banana, blackgram\n",
"Sample 223: coconut, banana, blackgram\n",
"Sample 224: mango, banana, blackgram\n",
"Sample 225: papaya, banana, blackgram\n",
"Sample 226: carrot, banana, blackgram\n",
"Sample 227: chickpea, banana, blackgram\n",
"Sample 228: pomegranate, banana, blackgram\n",
"Sample 229: chickpea, banana, blackgram\n",
"Sample 230: watermelon, banana, blackgram\n",
"Sample 231: rice, banana, blackgram\n",
"Sample 232: watermelon, banana, blackgram\n",
"Sample 233: watermelon, banana, blackgram\n",
"Sample 234: mothbeans, banana, blackgram\n",
"Sample 235: coconut, banana, blackgram\n",
"Sample 236: cotton, banana, blackgram\n",
"Sample 237: coconut, banana, blackgram\n",
"Sample 238: pomegranate, banana, blackgram\n",
"Sample 239: jute, banana, blackgram\n",
"Sample 240: muskmelon, banana, blackgram\n",
"Sample 241: cotton, banana, blackgram\n",
"Sample 242: papaya, banana, blackgram\n",
"Sample 243: mungbean, banana, blackgram\n",
"Sample 244: maize, banana, blackgram\n",
"Sample 245: mango, banana, blackgram\n",
"Sample 246: muskmelon, banana, blackgram\n",
"Sample 247: kidneybeans, banana, blackgram\n",
"Sample 248: lentil, banana, blackgram\n",
"Sample 249: potato, banana, blackgram\n",
"Sample 250: rice, banana, blackgram\n",
"Sample 251: coconut, banana, blackgram\n",
"Sample 252: cotton, banana, blackgram\n",
"Sample 253: kidneybeans, banana, blackgram\n",
"Sample 254: jute, banana, blackgram\n",
"Sample 255: carrot, banana, blackgram\n",
"Sample 256: pomegranate, banana, blackgram\n",
"Sample 257: potato, banana, blackgram\n",
"Sample 258: chickpea, banana, blackgram\n",
"Sample 259: cotton, banana, blackgram\n",
"Sample 260: potato, banana, blackgram\n",
"Sample 261: mango, banana, blackgram\n",
"Sample 262: banana, blackgram, carrot\n",
"Sample 263: papaya, banana, blackgram\n",
"Sample 264: carrot, banana, blackgram\n",
"Sample 265: chickpea, banana, blackgram\n",
"Sample 266: jute, banana, blackgram\n",
"Sample 267: lentil, banana, blackgram\n",
"Sample 268: mungbean, banana, blackgram\n",
"Sample 269: mungbean, banana, blackgram\n",
"Sample 270: jute, banana, blackgram\n",
"Sample 271: pomegranate, banana, blackgram\n",
"Sample 272: rice, banana, blackgram\n",
"Sample 273: mungbean, banana, blackgram\n",
"Sample 274: jute, banana, blackgram\n",
"Sample 275: cotton, banana, blackgram\n",
"Sample 276: coconut, banana, blackgram\n",
"Sample 277: maize, banana, blackgram\n",
"Sample 278: chickpea, banana, blackgram\n",
"Sample 279: banana, blackgram, carrot\n",
"Sample 280: rice, banana, blackgram\n",
"Sample 281: coconut, banana, blackgram\n",
"Sample 282: rice, banana, blackgram\n",
"Sample 283: mothbeans, banana, blackgram\n",
"Sample 284: watermelon, banana, blackgram\n",
"Sample 285: rice, banana, blackgram\n",
"Sample 286: banana, blackgram, carrot\n",
"Sample 287: pigeonpeas, banana, blackgram\n",
"Sample 288: lentil, banana, blackgram\n",
"Sample 289: orange, banana, blackgram\n",
"Sample 290: chickpea, banana, blackgram\n",
"Sample 291: muskmelon, banana, blackgram\n",
"Sample 292: banana, blackgram, carrot\n",
"Sample 293: carrot, banana, blackgram\n",
"Sample 294: chickpea, banana, blackgram\n",
"Sample 295: potato, banana, blackgram\n",
"Sample 296: lentil, banana, blackgram\n",
"Sample 297: orange, banana, blackgram\n",
"Sample 298: rice, banana, blackgram\n",
"Sample 299: coconut, banana, blackgram\n",
"Sample 300: papaya, banana, blackgram\n",
"Sample 301: muskmelon, banana, blackgram\n",
"Sample 302: mungbean, banana, blackgram\n",
"Sample 303: papaya, banana, blackgram\n",
"Sample 304: chickpea, banana, blackgram\n",
"Sample 305: pomegranate, banana, blackgram\n",
"Sample 306: chickpea, banana, blackgram\n",
"Sample 307: papaya, banana, blackgram\n",
"Sample 308: kidneybeans, banana, blackgram\n",
"Sample 309: carrot, banana, blackgram\n",
"Sample 310: pomegranate, banana, blackgram\n",
"Sample 311: chickpea, banana, blackgram\n",
"Sample 312: mango, banana, blackgram\n",
"Sample 313: chickpea, banana, blackgram\n",
"Sample 314: pomegranate, banana, blackgram\n",
"Sample 315: muskmelon, banana, blackgram\n",
"Sample 316: pigeonpeas, banana, blackgram\n",
"Sample 317: mothbeans, banana, blackgram\n",
"Sample 318: watermelon, banana, blackgram\n",
"Sample 319: muskmelon, banana, blackgram\n",
"Sample 320: lentil, banana, blackgram\n",
"Sample 321: watermelon, banana, blackgram\n",
"Sample 322: coconut, banana, blackgram\n",
"Sample 323: jute, banana, blackgram\n",
"Sample 324: blackgram, banana, carrot\n",
"Sample 325: chickpea, banana, blackgram\n",
"Sample 326: banana, blackgram, carrot\n",
"Sample 327: kidneybeans, banana, blackgram\n",
"Sample 328: lentil, banana, blackgram\n",
"Sample 329: papaya, banana, blackgram\n",
"Sample 330: lentil, banana, blackgram\n",
"Sample 331: mothbeans, banana, blackgram\n",
"Sample 332: mango, banana, blackgram\n",
"Sample 333: cotton, banana, blackgram\n",
"Sample 334: carrot, banana, blackgram\n",
"Sample 335: rice, banana, blackgram\n",
"Sample 336: pigeonpeas, banana, blackgram\n",
"Sample 337: banana, blackgram, carrot\n",
"Sample 338: jute, banana, blackgram\n",
"Sample 339: carrot, banana, blackgram\n",
"Sample 340: pomegranate, banana, blackgram\n",
"Sample 341: rice, banana, blackgram\n",
"Sample 342: mothbeans, mungbean, banana\n",
"Sample 343: watermelon, banana, blackgram\n",
"Sample 344: potato, banana, blackgram\n",
"Sample 345: potato, banana, blackgram\n",
"Sample 346: lentil, banana, blackgram\n",
"Sample 347: rice, banana, blackgram\n",
"Sample 348: blackgram, banana, carrot\n",
"Sample 349: banana, blackgram, carrot\n",
"Sample 350: maize, banana, blackgram\n",
"Sample 351: rice, banana, blackgram\n",
"Sample 352: maize, banana, blackgram\n",
"Sample 353: kidneybeans, banana, blackgram\n",
"Sample 354: mango, banana, blackgram\n",
"Sample 355: pigeonpeas, banana, blackgram\n",
"Sample 356: coconut, banana, blackgram\n",
"Sample 357: watermelon, banana, blackgram\n",
"Sample 358: blackgram, banana, carrot\n",
"Sample 359: maize, banana, blackgram\n",
"Sample 360: jute, banana, blackgram\n",
"Sample 361: mothbeans, banana, blackgram\n",
"Sample 362: mungbean, banana, blackgram\n",
"Sample 363: mango, banana, blackgram\n",
"Sample 364: cotton, banana, blackgram\n",
"Sample 365: papaya, banana, blackgram\n",
"Sample 366: mungbean, banana, blackgram\n",
"Sample 367: cotton, banana, blackgram\n",
"Sample 368: mothbeans, banana, blackgram\n",
"Sample 369: orange, banana, blackgram\n",
"Sample 370: jute, banana, blackgram\n",
"Sample 371: blackgram, banana, carrot\n",
"Sample 372: mungbean, banana, blackgram\n",
"Sample 373: potato, banana, blackgram\n",
"Sample 374: banana, blackgram, carrot\n",
"Sample 375: mungbean, banana, blackgram\n",
"Sample 376: papaya, banana, blackgram\n",
"Sample 377: carrot, banana, blackgram\n",
"Sample 378: pomegranate, banana, blackgram\n",
"Sample 379: maize, banana, blackgram\n",
"Sample 380: mango, banana, blackgram\n",
"Sample 381: mango, banana, blackgram\n",
"Sample 382: carrot, banana, blackgram\n",
"Sample 383: pigeonpeas, banana, blackgram\n",
"Sample 384: rice, banana, blackgram\n",
"Sample 385: mungbean, banana, blackgram\n",
"Sample 386: kidneybeans, banana, blackgram\n",
"Sample 387: coconut, banana, blackgram\n",
"Sample 388: blackgram, banana, carrot\n",
"Sample 389: jute, banana, blackgram\n",
"Sample 390: lentil, banana, blackgram\n",
"Sample 391: cotton, banana, blackgram\n",
"Sample 392: muskmelon, banana, blackgram\n",
"Sample 393: rice, banana, blackgram\n",
"Sample 394: carrot, banana, blackgram\n",
"Sample 395: coconut, banana, blackgram\n",
"Sample 396: carrot, banana, blackgram\n",
"Sample 397: muskmelon, banana, blackgram\n",
"Sample 398: rice, banana, blackgram\n",
"Sample 399: mango, banana, blackgram\n",
"Sample 400: coconut, banana, blackgram\n",
"Sample 401: potato, banana, blackgram\n",
"Sample 402: pomegranate, banana, blackgram\n",
"Sample 403: banana, blackgram, carrot\n",
"Sample 404: carrot, banana, blackgram\n",
"Sample 405: jute, banana, blackgram\n",
"Sample 406: orange, banana, blackgram\n",
"Sample 407: cotton, banana, blackgram\n",
"Sample 408: mango, banana, blackgram\n",
"Sample 409: papaya, banana, blackgram\n",
"Sample 410: watermelon, banana, blackgram\n",
"Sample 411: mungbean, banana, blackgram\n",
"Sample 412: jute, banana, blackgram\n",
"Sample 413: chickpea, banana, blackgram\n",
"Sample 414: mothbeans, banana, blackgram\n",
"Sample 415: pomegranate, banana, blackgram\n",
"Sample 416: watermelon, banana, blackgram\n",
"Sample 417: mungbean, banana, blackgram\n",
"Sample 418: cotton, banana, blackgram\n",
"Sample 419: papaya, banana, blackgram\n",
"Sample 420: watermelon, banana, blackgram\n",
"Sample 421: mungbean, banana, blackgram\n",
"Sample 422: jute, banana, blackgram\n",
"Sample 423: mango, banana, blackgram\n",
"Sample 424: mothbeans, banana, blackgram\n",
"Sample 425: mungbean, banana, blackgram\n",
"Sample 426: maize, banana, blackgram\n",
"Sample 427: rice, banana, blackgram\n",
"Sample 428: maize, banana, blackgram\n",
"Sample 429: mango, banana, blackgram\n",
"Sample 430: orange, banana, blackgram\n",
"Sample 431: pomegranate, banana, blackgram\n",
"Sample 432: mothbeans, banana, blackgram\n",
"Sample 433: watermelon, banana, blackgram\n",
"Sample 434: lentil, banana, blackgram\n",
"Sample 435: blackgram, banana, carrot\n",
"Sample 436: rice, banana, blackgram\n",
"Sample 437: jute, banana, blackgram\n",
"Sample 438: cotton, banana, blackgram\n",
"Sample 439: cotton, banana, blackgram\n",
"Sample 440: pigeonpeas, banana, blackgram\n"
]
}
],
"source": [
"for i, crops in enumerate(top_crops):\n",
" print(f\"Sample {i+1}: {', '.join(crops)}\")"
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "41d8700b",
"metadata": {},
"outputs": [],
"source": [
"import joblib"
]
},
{
"cell_type": "code",
"execution_count": 16,
"id": "bccac737",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"['decision_tree_model.joblib']"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"joblib.dump(dt_model, 'decision_tree_model.joblib')"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "28ae50b6",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.10.9"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
{
"cells": [
{
"cell_type": "code",
"execution_count": 7,
"id": "b7ab6b9c",
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"from sklearn.svm import SVR\n",
"from sklearn.model_selection import train_test_split\n",
"from sklearn.metrics import mean_squared_error, r2_score"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "aac2aa34",
"metadata": {},
"outputs": [
{
"ename": "FileNotFoundError",
"evalue": "[Errno 2] No such file or directory: 'crop_soil.csv'",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mFileNotFoundError\u001b[0m Traceback (most recent call last)",
"Cell \u001b[0;32mIn[8], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m data \u001b[38;5;241m=\u001b[39m \u001b[43mpd\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mread_csv\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43mcrop_soil.csv\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m)\u001b[49m\n",
"File \u001b[0;32m~/anaconda3/lib/python3.10/site-packages/pandas/util/_decorators.py:211\u001b[0m, in \u001b[0;36mdeprecate_kwarg.<locals>._deprecate_kwarg.<locals>.wrapper\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 209\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 210\u001b[0m kwargs[new_arg_name] \u001b[38;5;241m=\u001b[39m new_arg_value\n\u001b[0;32m--> 211\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mfunc\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n",
"File \u001b[0;32m~/anaconda3/lib/python3.10/site-packages/pandas/util/_decorators.py:331\u001b[0m, in \u001b[0;36mdeprecate_nonkeyword_arguments.<locals>.decorate.<locals>.wrapper\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 325\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mlen\u001b[39m(args) \u001b[38;5;241m>\u001b[39m num_allow_args:\n\u001b[1;32m 326\u001b[0m warnings\u001b[38;5;241m.\u001b[39mwarn(\n\u001b[1;32m 327\u001b[0m msg\u001b[38;5;241m.\u001b[39mformat(arguments\u001b[38;5;241m=\u001b[39m_format_argument_list(allow_args)),\n\u001b[1;32m 328\u001b[0m \u001b[38;5;167;01mFutureWarning\u001b[39;00m,\n\u001b[1;32m 329\u001b[0m stacklevel\u001b[38;5;241m=\u001b[39mfind_stack_level(),\n\u001b[1;32m 330\u001b[0m )\n\u001b[0;32m--> 331\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mfunc\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n",
"File \u001b[0;32m~/anaconda3/lib/python3.10/site-packages/pandas/io/parsers/readers.py:950\u001b[0m, in \u001b[0;36mread_csv\u001b[0;34m(filepath_or_buffer, sep, delimiter, header, names, index_col, usecols, squeeze, prefix, mangle_dupe_cols, dtype, engine, converters, true_values, false_values, skipinitialspace, skiprows, skipfooter, nrows, na_values, keep_default_na, na_filter, verbose, skip_blank_lines, parse_dates, infer_datetime_format, keep_date_col, date_parser, dayfirst, cache_dates, iterator, chunksize, compression, thousands, decimal, lineterminator, quotechar, quoting, doublequote, escapechar, comment, encoding, encoding_errors, dialect, error_bad_lines, warn_bad_lines, on_bad_lines, delim_whitespace, low_memory, memory_map, float_precision, storage_options)\u001b[0m\n\u001b[1;32m 935\u001b[0m kwds_defaults \u001b[38;5;241m=\u001b[39m _refine_defaults_read(\n\u001b[1;32m 936\u001b[0m dialect,\n\u001b[1;32m 937\u001b[0m delimiter,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 946\u001b[0m defaults\u001b[38;5;241m=\u001b[39m{\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mdelimiter\u001b[39m\u001b[38;5;124m\"\u001b[39m: \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m,\u001b[39m\u001b[38;5;124m\"\u001b[39m},\n\u001b[1;32m 947\u001b[0m )\n\u001b[1;32m 948\u001b[0m kwds\u001b[38;5;241m.\u001b[39mupdate(kwds_defaults)\n\u001b[0;32m--> 950\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43m_read\u001b[49m\u001b[43m(\u001b[49m\u001b[43mfilepath_or_buffer\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mkwds\u001b[49m\u001b[43m)\u001b[49m\n",
"File \u001b[0;32m~/anaconda3/lib/python3.10/site-packages/pandas/io/parsers/readers.py:605\u001b[0m, in \u001b[0;36m_read\u001b[0;34m(filepath_or_buffer, kwds)\u001b[0m\n\u001b[1;32m 602\u001b[0m _validate_names(kwds\u001b[38;5;241m.\u001b[39mget(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mnames\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;28;01mNone\u001b[39;00m))\n\u001b[1;32m 604\u001b[0m \u001b[38;5;66;03m# Create the parser.\u001b[39;00m\n\u001b[0;32m--> 605\u001b[0m parser \u001b[38;5;241m=\u001b[39m \u001b[43mTextFileReader\u001b[49m\u001b[43m(\u001b[49m\u001b[43mfilepath_or_buffer\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwds\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 607\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m chunksize \u001b[38;5;129;01mor\u001b[39;00m iterator:\n\u001b[1;32m 608\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m parser\n",
"File \u001b[0;32m~/anaconda3/lib/python3.10/site-packages/pandas/io/parsers/readers.py:1442\u001b[0m, in \u001b[0;36mTextFileReader.__init__\u001b[0;34m(self, f, engine, **kwds)\u001b[0m\n\u001b[1;32m 1439\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39moptions[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mhas_index_names\u001b[39m\u001b[38;5;124m\"\u001b[39m] \u001b[38;5;241m=\u001b[39m kwds[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mhas_index_names\u001b[39m\u001b[38;5;124m\"\u001b[39m]\n\u001b[1;32m 1441\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mhandles: IOHandles \u001b[38;5;241m|\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[0;32m-> 1442\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_engine \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_make_engine\u001b[49m\u001b[43m(\u001b[49m\u001b[43mf\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mengine\u001b[49m\u001b[43m)\u001b[49m\n",
"File \u001b[0;32m~/anaconda3/lib/python3.10/site-packages/pandas/io/parsers/readers.py:1735\u001b[0m, in \u001b[0;36mTextFileReader._make_engine\u001b[0;34m(self, f, engine)\u001b[0m\n\u001b[1;32m 1733\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mb\u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;129;01min\u001b[39;00m mode:\n\u001b[1;32m 1734\u001b[0m mode \u001b[38;5;241m+\u001b[39m\u001b[38;5;241m=\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mb\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[0;32m-> 1735\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mhandles \u001b[38;5;241m=\u001b[39m \u001b[43mget_handle\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 1736\u001b[0m \u001b[43m \u001b[49m\u001b[43mf\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1737\u001b[0m \u001b[43m \u001b[49m\u001b[43mmode\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1738\u001b[0m \u001b[43m \u001b[49m\u001b[43mencoding\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43moptions\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mencoding\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mNone\u001b[39;49;00m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1739\u001b[0m \u001b[43m \u001b[49m\u001b[43mcompression\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43moptions\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mcompression\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mNone\u001b[39;49;00m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1740\u001b[0m \u001b[43m \u001b[49m\u001b[43mmemory_map\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43moptions\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mmemory_map\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mFalse\u001b[39;49;00m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1741\u001b[0m \u001b[43m \u001b[49m\u001b[43mis_text\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mis_text\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1742\u001b[0m \u001b[43m \u001b[49m\u001b[43merrors\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43moptions\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mencoding_errors\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mstrict\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1743\u001b[0m \u001b[43m \u001b[49m\u001b[43mstorage_options\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43moptions\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mstorage_options\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mNone\u001b[39;49;00m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1744\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1745\u001b[0m \u001b[38;5;28;01massert\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mhandles \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[1;32m 1746\u001b[0m f \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mhandles\u001b[38;5;241m.\u001b[39mhandle\n",
"File \u001b[0;32m~/anaconda3/lib/python3.10/site-packages/pandas/io/common.py:856\u001b[0m, in \u001b[0;36mget_handle\u001b[0;34m(path_or_buf, mode, encoding, compression, memory_map, is_text, errors, storage_options)\u001b[0m\n\u001b[1;32m 851\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(handle, \u001b[38;5;28mstr\u001b[39m):\n\u001b[1;32m 852\u001b[0m \u001b[38;5;66;03m# Check whether the filename is to be opened in binary mode.\u001b[39;00m\n\u001b[1;32m 853\u001b[0m \u001b[38;5;66;03m# Binary mode does not support 'encoding' and 'newline'.\u001b[39;00m\n\u001b[1;32m 854\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m ioargs\u001b[38;5;241m.\u001b[39mencoding \u001b[38;5;129;01mand\u001b[39;00m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mb\u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;129;01min\u001b[39;00m ioargs\u001b[38;5;241m.\u001b[39mmode:\n\u001b[1;32m 855\u001b[0m \u001b[38;5;66;03m# Encoding\u001b[39;00m\n\u001b[0;32m--> 856\u001b[0m handle \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mopen\u001b[39;49m\u001b[43m(\u001b[49m\n\u001b[1;32m 857\u001b[0m \u001b[43m \u001b[49m\u001b[43mhandle\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 858\u001b[0m \u001b[43m \u001b[49m\u001b[43mioargs\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mmode\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 859\u001b[0m \u001b[43m \u001b[49m\u001b[43mencoding\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mioargs\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mencoding\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 860\u001b[0m \u001b[43m \u001b[49m\u001b[43merrors\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43merrors\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 861\u001b[0m \u001b[43m \u001b[49m\u001b[43mnewline\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[1;32m 862\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 863\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 864\u001b[0m \u001b[38;5;66;03m# Binary mode\u001b[39;00m\n\u001b[1;32m 865\u001b[0m handle \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mopen\u001b[39m(handle, ioargs\u001b[38;5;241m.\u001b[39mmode)\n",
"\u001b[0;31mFileNotFoundError\u001b[0m: [Errno 2] No such file or directory: 'crop_soil.csv'"
]
}
],
"source": [
"data = pd.read_csv('crop_soil.csv')"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "52e39782",
"metadata": {},
"outputs": [],
"source": [
"data = pd.read_csv('soil_crop.csv')"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "a1a4fdd8",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>nitrogen</th>\n",
" <th>phosphorus</th>\n",
" <th>potassium</th>\n",
" <th>crop</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>90</td>\n",
" <td>42</td>\n",
" <td>43</td>\n",
" <td>rice</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>85</td>\n",
" <td>58</td>\n",
" <td>41</td>\n",
" <td>rice</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>60</td>\n",
" <td>55</td>\n",
" <td>44</td>\n",
" <td>rice</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>74</td>\n",
" <td>35</td>\n",
" <td>40</td>\n",
" <td>rice</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>78</td>\n",
" <td>42</td>\n",
" <td>42</td>\n",
" <td>rice</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2195</th>\n",
" <td>107</td>\n",
" <td>34</td>\n",
" <td>32</td>\n",
" <td>potato</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2196</th>\n",
" <td>99</td>\n",
" <td>15</td>\n",
" <td>27</td>\n",
" <td>potato</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2197</th>\n",
" <td>118</td>\n",
" <td>33</td>\n",
" <td>30</td>\n",
" <td>potato</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2198</th>\n",
" <td>117</td>\n",
" <td>32</td>\n",
" <td>34</td>\n",
" <td>potato</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2199</th>\n",
" <td>104</td>\n",
" <td>18</td>\n",
" <td>30</td>\n",
" <td>potato</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>2200 rows × 4 columns</p>\n",
"</div>"
],
"text/plain": [
" nitrogen phosphorus potassium crop\n",
"0 90 42 43 rice\n",
"1 85 58 41 rice\n",
"2 60 55 44 rice\n",
"3 74 35 40 rice\n",
"4 78 42 42 rice\n",
"... ... ... ... ...\n",
"2195 107 34 32 potato\n",
"2196 99 15 27 potato\n",
"2197 118 33 30 potato\n",
"2198 117 32 34 potato\n",
"2199 104 18 30 potato\n",
"\n",
"[2200 rows x 4 columns]"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "24e0b4c1",
"metadata": {},
"outputs": [],
"source": [
"X = data[['nitrogen', 'phosphorus', 'potassium']]\n",
"y = data['crop']"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "651f1e76",
"metadata": {},
"outputs": [],
"source": [
"X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)"
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "5771b3f5",
"metadata": {},
"outputs": [
{
"ename": "ValueError",
"evalue": "could not convert string to float: 'orange'",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)",
"Cell \u001b[0;32mIn[13], line 2\u001b[0m\n\u001b[1;32m 1\u001b[0m svr_model \u001b[38;5;241m=\u001b[39m SVR(kernel\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mlinear\u001b[39m\u001b[38;5;124m'\u001b[39m)\n\u001b[0;32m----> 2\u001b[0m \u001b[43msvr_model\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfit\u001b[49m\u001b[43m(\u001b[49m\u001b[43mX_train\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43my_train\u001b[49m\u001b[43m)\u001b[49m\n",
"File \u001b[0;32m~/anaconda3/lib/python3.10/site-packages/sklearn/svm/_base.py:201\u001b[0m, in \u001b[0;36mBaseLibSVM.fit\u001b[0;34m(self, X, y, sample_weight)\u001b[0m\n\u001b[1;32m 191\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 192\u001b[0m X, y \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_validate_data(\n\u001b[1;32m 193\u001b[0m X,\n\u001b[1;32m 194\u001b[0m y,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 198\u001b[0m accept_large_sparse\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mFalse\u001b[39;00m,\n\u001b[1;32m 199\u001b[0m )\n\u001b[0;32m--> 201\u001b[0m y \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_validate_targets\u001b[49m\u001b[43m(\u001b[49m\u001b[43my\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 203\u001b[0m sample_weight \u001b[38;5;241m=\u001b[39m np\u001b[38;5;241m.\u001b[39masarray(\n\u001b[1;32m 204\u001b[0m [] \u001b[38;5;28;01mif\u001b[39;00m sample_weight \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;28;01melse\u001b[39;00m sample_weight, dtype\u001b[38;5;241m=\u001b[39mnp\u001b[38;5;241m.\u001b[39mfloat64\n\u001b[1;32m 205\u001b[0m )\n\u001b[1;32m 206\u001b[0m solver_type \u001b[38;5;241m=\u001b[39m LIBSVM_IMPL\u001b[38;5;241m.\u001b[39mindex(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_impl)\n",
"File \u001b[0;32m~/anaconda3/lib/python3.10/site-packages/sklearn/svm/_base.py:294\u001b[0m, in \u001b[0;36mBaseLibSVM._validate_targets\u001b[0;34m(self, y)\u001b[0m\n\u001b[1;32m 289\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m_validate_targets\u001b[39m(\u001b[38;5;28mself\u001b[39m, y):\n\u001b[1;32m 290\u001b[0m \u001b[38;5;124;03m\"\"\"Validation of y and class_weight.\u001b[39;00m\n\u001b[1;32m 291\u001b[0m \n\u001b[1;32m 292\u001b[0m \u001b[38;5;124;03m Default implementation for SVR and one-class; overridden in BaseSVC.\u001b[39;00m\n\u001b[1;32m 293\u001b[0m \u001b[38;5;124;03m \"\"\"\u001b[39;00m\n\u001b[0;32m--> 294\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mcolumn_or_1d\u001b[49m\u001b[43m(\u001b[49m\u001b[43my\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mwarn\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mastype\u001b[49m\u001b[43m(\u001b[49m\u001b[43mnp\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfloat64\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mcopy\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mFalse\u001b[39;49;00m\u001b[43m)\u001b[49m\n",
"\u001b[0;31mValueError\u001b[0m: could not convert string to float: 'orange'"
]
}
],
"source": [
"svr_model = SVR(kernel='linear')\n",
"svr_model.fit(X_train, y_train)"
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "abbbea01",
"metadata": {},
"outputs": [
{
"ename": "NameError",
"evalue": "name 'SVC' is not defined",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)",
"Cell \u001b[0;32mIn[14], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m svm_classifier \u001b[38;5;241m=\u001b[39m \u001b[43mSVC\u001b[49m(kernel\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mlinear\u001b[39m\u001b[38;5;124m'\u001b[39m) \u001b[38;5;66;03m# You can choose different kernels like 'linear', 'rbf', or 'poly'\u001b[39;00m\n\u001b[1;32m 2\u001b[0m svm_classifier\u001b[38;5;241m.\u001b[39mfit(X_train, y_train)\n",
"\u001b[0;31mNameError\u001b[0m: name 'SVC' is not defined"
]
}
],
"source": [
"svm_classifier = SVC(kernel='linear') # You can choose different kernels like 'linear', 'rbf', or 'poly'\n",
"svm_classifier.fit(X_train, y_train)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "cb8d705c",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.10.9"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "e97941ee",
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"from sklearn.svm import SVC\n",
"from sklearn.model_selection import train_test_split\n",
"from sklearn.metrics import accuracy_score, classification_report"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "4f8b74ca",
"metadata": {},
"outputs": [],
"source": [
"data = pd.read_csv('soil_crop.csv')"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "fa5d9e33",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>nitrogen</th>\n",
" <th>phosphorus</th>\n",
" <th>potassium</th>\n",
" <th>crop</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>90</td>\n",
" <td>42</td>\n",
" <td>43</td>\n",
" <td>rice</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>85</td>\n",
" <td>58</td>\n",
" <td>41</td>\n",
" <td>rice</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>60</td>\n",
" <td>55</td>\n",
" <td>44</td>\n",
" <td>rice</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>74</td>\n",
" <td>35</td>\n",
" <td>40</td>\n",
" <td>rice</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>78</td>\n",
" <td>42</td>\n",
" <td>42</td>\n",
" <td>rice</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2195</th>\n",
" <td>107</td>\n",
" <td>34</td>\n",
" <td>32</td>\n",
" <td>potato</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2196</th>\n",
" <td>99</td>\n",
" <td>15</td>\n",
" <td>27</td>\n",
" <td>potato</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2197</th>\n",
" <td>118</td>\n",
" <td>33</td>\n",
" <td>30</td>\n",
" <td>potato</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2198</th>\n",
" <td>117</td>\n",
" <td>32</td>\n",
" <td>34</td>\n",
" <td>potato</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2199</th>\n",
" <td>104</td>\n",
" <td>18</td>\n",
" <td>30</td>\n",
" <td>potato</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>2200 rows × 4 columns</p>\n",
"</div>"
],
"text/plain": [
" nitrogen phosphorus potassium crop\n",
"0 90 42 43 rice\n",
"1 85 58 41 rice\n",
"2 60 55 44 rice\n",
"3 74 35 40 rice\n",
"4 78 42 42 rice\n",
"... ... ... ... ...\n",
"2195 107 34 32 potato\n",
"2196 99 15 27 potato\n",
"2197 118 33 30 potato\n",
"2198 117 32 34 potato\n",
"2199 104 18 30 potato\n",
"\n",
"[2200 rows x 4 columns]"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "7a42d6ad",
"metadata": {},
"outputs": [],
"source": [
"X = data[['nitrogen', 'phosphorus', 'potassium']]\n",
"y = data['crop'] "
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "dbab707d",
"metadata": {},
"outputs": [],
"source": [
"X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "8c15d6e7",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<style>#sk-container-id-1 {color: black;background-color: white;}#sk-container-id-1 pre{padding: 0;}#sk-container-id-1 div.sk-toggleable {background-color: white;}#sk-container-id-1 label.sk-toggleable__label {cursor: pointer;display: block;width: 100%;margin-bottom: 0;padding: 0.3em;box-sizing: border-box;text-align: center;}#sk-container-id-1 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-1 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-1 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-1 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-1 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-1 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-1 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-1 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 input.sk-hidden--visually {border: 0;clip: rect(1px 1px 1px 1px);clip: rect(1px, 1px, 1px, 1px);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;}#sk-container-id-1 div.sk-estimator {font-family: monospace;background-color: #f0f8ff;border: 1px dotted black;border-radius: 0.25em;box-sizing: border-box;margin-bottom: 0.5em;}#sk-container-id-1 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-1 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-1 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 div.sk-serial::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: 0;}#sk-container-id-1 div.sk-serial {display: flex;flex-direction: column;align-items: center;background-color: white;padding-right: 0.2em;padding-left: 0.2em;position: relative;}#sk-container-id-1 div.sk-item {position: relative;z-index: 1;}#sk-container-id-1 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-1 div.sk-item::before, #sk-container-id-1 div.sk-parallel-item::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: -1;}#sk-container-id-1 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-1 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-1 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-1 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-1 div.sk-dashed-wrapped {border: 1px dashed gray;margin: 0 0.4em 0.5em 0.4em;box-sizing: border-box;padding-bottom: 0.4em;background-color: white;}#sk-container-id-1 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-1 div.sk-label-container {text-align: center;}#sk-container-id-1 div.sk-container {/* jupyter's `normalize.less` sets `[hidden] { display: none; }` but bootstrap.min.css set `[hidden] { display: none !important; }` so we also need the `!important` here to be able to override the default hidden behavior on the sphinx rendered scikit-learn.org. See: https://github.com/scikit-learn/scikit-learn/issues/21755 */display: inline-block !important;position: relative;}#sk-container-id-1 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-1\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>SVC(kernel=&#x27;linear&#x27;)</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-1\" type=\"checkbox\" checked><label for=\"sk-estimator-id-1\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">SVC</label><div class=\"sk-toggleable__content\"><pre>SVC(kernel=&#x27;linear&#x27;)</pre></div></div></div></div></div>"
],
"text/plain": [
"SVC(kernel='linear')"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"svm_classifier = SVC(kernel='linear') \n",
"svm_classifier.fit(X_train, y_train)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "35064b2c",
"metadata": {},
"outputs": [],
"source": [
"y_pred = svm_classifier.predict(X_test)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "41d44dfc",
"metadata": {},
"outputs": [],
"source": [
"accuracy = accuracy_score(y_test, y_pred)\n",
"report = classification_report(y_test, y_pred)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "1eb45380",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Accuracy: 0.6181818181818182\n",
"\n",
"Classification Report:\n",
" precision recall f1-score support\n",
"\n",
" banana 1.00 1.00 1.00 21\n",
" blackgram 0.53 0.50 0.51 20\n",
" carrot 0.38 0.79 0.51 14\n",
" chickpea 1.00 0.81 0.89 26\n",
" coconut 0.79 0.70 0.75 27\n",
" cotton 0.89 1.00 0.94 17\n",
" jute 0.55 0.26 0.35 23\n",
" kidneybeans 0.15 0.10 0.12 20\n",
" lentil 0.21 0.64 0.32 11\n",
" maize 1.00 0.95 0.98 21\n",
" mango 0.56 0.79 0.65 19\n",
" mothbeans 0.39 0.29 0.33 24\n",
" mungbean 0.32 0.37 0.34 19\n",
" muskmelon 0.41 0.53 0.46 17\n",
" orange 1.00 1.00 1.00 14\n",
" papaya 1.00 0.91 0.95 23\n",
" pigeonpeas 0.22 0.09 0.12 23\n",
" pomegranate 1.00 0.91 0.95 23\n",
" potato 0.84 0.94 0.89 17\n",
" rice 0.47 0.48 0.47 42\n",
" watermelon 0.43 0.32 0.36 19\n",
"\n",
" accuracy 0.62 440\n",
" macro avg 0.63 0.64 0.62 440\n",
"weighted avg 0.63 0.62 0.61 440\n",
"\n"
]
}
],
"source": [
"print(\"Accuracy:\", accuracy)\n",
"print(\"\\nClassification Report:\\n\", report)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "e271d9c1",
"metadata": {},
"outputs": [],
"source": [
"import joblib"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "242ee109",
"metadata": {},
"outputs": [
{
"ename": "NameError",
"evalue": "name 'oblib' is not defined",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)",
"Cell \u001b[0;32mIn[11], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[43moblib\u001b[49m\u001b[38;5;241m.\u001b[39mdump(dt_model, \u001b[38;5;124m'\u001b[39m\u001b[38;5;124msupport_vector_classifier,_model.joblib\u001b[39m\u001b[38;5;124m'\u001b[39m)\n",
"\u001b[0;31mNameError\u001b[0m: name 'oblib' is not defined"
]
}
],
"source": [
"oblib.dump(dt_model, 'support_vector_classifier,_model.joblib')"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "96631ac2",
"metadata": {},
"outputs": [
{
"ename": "NameError",
"evalue": "name 'dt_model' is not defined",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)",
"Cell \u001b[0;32mIn[12], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m joblib\u001b[38;5;241m.\u001b[39mdump(\u001b[43mdt_model\u001b[49m, \u001b[38;5;124m'\u001b[39m\u001b[38;5;124msupport_vector_classifier,_model.joblib\u001b[39m\u001b[38;5;124m'\u001b[39m)\n",
"\u001b[0;31mNameError\u001b[0m: name 'dt_model' is not defined"
]
}
],
"source": [
"joblib.dump(dt_model, 'support_vector_classifier,_model.joblib')"
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "0eb58a65",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"['support_vector_classifier,_model.joblib']"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"joblib.dump(svm_classifier, 'support_vector_classifier,_model.joblib')"
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "4f613f6a",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Accuracy: 0.6181818181818182\n"
]
}
],
"source": [
"print(\"Accuracy:\", accuracy)"
]
},
{
"cell_type": "code",
"execution_count": 15,
"id": "ec32a59e",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"support_vector_classifier model Accuracy: 0.6181818181818182\n"
]
}
],
"source": [
"print(\"support_vector_classifier model Accuracy:\", accuracy)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "00204b8e",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.10.9"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
...@@ -10,6 +10,7 @@ class Crop: ...@@ -10,6 +10,7 @@ class Crop:
# Function to calculate the suitability score for a crop # Function to calculate the suitability score for a crop
def calculate_suitability_score(crop, user_soil_nutrients, optimization_criteria): def calculate_suitability_score(crop, user_soil_nutrients, optimization_criteria):
global suitability
score = 0 score = 0
for nutrient in user_soil_nutrients: for nutrient in user_soil_nutrients:
nutrient_value = user_soil_nutrients[nutrient] nutrient_value = user_soil_nutrients[nutrient]
...@@ -21,9 +22,7 @@ def calculate_suitability_score(crop, user_soil_nutrients, optimization_criteria ...@@ -21,9 +22,7 @@ def calculate_suitability_score(crop, user_soil_nutrients, optimization_criteria
if difference == 0: if difference == 0:
suitability = 100.0 suitability = 100.0
else: else:
suitability = 0.0 suitability = (1 - difference / required_value) * 100.0
else:
suitability = (1 - difference / required_value) * 100.0
weighted_suitability = suitability * weight weighted_suitability = suitability * weight
score += weighted_suitability score += weighted_suitability
...@@ -72,13 +71,12 @@ def receive_npk_data(): ...@@ -72,13 +71,12 @@ def receive_npk_data():
Crop("Maize", {'N': 0.6, 'P': 0.4, 'K': 0.5}), Crop("Maize", {'N': 0.6, 'P': 0.4, 'K': 0.5}),
Crop("Potato", {'N': 0.3, 'P': 0.4, 'K': 0.5}), Crop("Potato", {'N': 0.3, 'P': 0.4, 'K': 0.5}),
Crop("Tomato", {'N': 0.6, 'P': 0.6, 'K': 0.6}), Crop("Tomato", {'N': 0.6, 'P': 0.6, 'K': 0.6}),
Crop("Cotton", {'N': 0.6, 'P': 0.4, 'K': 0.6})
] ]
optimization_criteria = { optimization_criteria = {
'N': 1, 'N': 1,
'P': 1, 'P': 0.5,
'K': 1 'K': 0.25
} }
crop_scores = [] crop_scores = []
......
nitrogen,phosphorus,potassium,crop
900.0,420.0,430.0,rice
850.0,580.0,410.0,rice
600.0,550.0,440.0,rice
740.0,350.0,400.0,rice
780.0,420.0,420.0,rice
690.0,370.0,420.0,rice
690.0,550.0,380.0,rice
940.0,530.0,400.0,rice
890.0,540.0,380.0,rice
680.0,580.0,380.0,rice
910.0,530.0,400.0,rice
900.0,460.0,420.0,rice
780.0,580.0,440.0,rice
930.0,560.0,360.0,rice
940.0,500.0,370.0,rice
600.0,480.0,390.0,rice
850.0,380.0,410.0,rice
910.0,350.0,390.0,rice
770.0,380.0,360.0,rice
880.0,350.0,400.0,rice
890.0,450.0,360.0,rice
760.0,400.0,430.0,rice
670.0,590.0,410.0,rice
830.0,410.0,430.0,rice
980.0,470.0,370.0,rice
660.0,530.0,410.0,rice
970.0,590.0,430.0,rice
970.0,500.0,410.0,rice
600.0,490.0,440.0,rice
840.0,510.0,350.0,rice
730.0,570.0,410.0,rice
920.0,350.0,400.0,rice
850.0,370.0,390.0,rice
980.0,530.0,380.0,rice
880.0,540.0,440.0,rice
950.0,550.0,420.0,rice
990.0,570.0,350.0,rice
950.0,390.0,360.0,rice
600.0,430.0,440.0,rice
630.0,440.0,410.0,rice
620.0,420.0,360.0,rice
640.0,450.0,430.0,rice
830.0,600.0,360.0,rice
820.0,400.0,400.0,rice
850.0,520.0,450.0,rice
910.0,350.0,380.0,rice
760.0,490.0,420.0,rice
740.0,390.0,380.0,rice
790.0,430.0,390.0,rice
880.0,550.0,450.0,rice
600.0,360.0,430.0,rice
760.0,600.0,390.0,rice
930.0,560.0,420.0,rice
650.0,600.0,430.0,rice
950.0,520.0,360.0,rice
750.0,380.0,390.0,rice
740.0,540.0,380.0,rice
910.0,360.0,450.0,rice
710.0,460.0,400.0,rice
990.0,550.0,350.0,rice
720.0,400.0,380.0,rice
830.0,580.0,450.0,rice
930.0,580.0,380.0,rice
700.0,360.0,420.0,rice
760.0,470.0,420.0,rice
990.0,410.0,360.0,rice
990.0,540.0,370.0,rice
860.0,590.0,350.0,rice
690.0,460.0,410.0,rice
910.0,560.0,370.0,rice
610.0,520.0,410.0,rice
670.0,450.0,380.0,rice
790.0,420.0,370.0,rice
780.0,430.0,420.0,rice
750.0,540.0,360.0,rice
970.0,360.0,450.0,rice
670.0,470.0,440.0,rice
730.0,350.0,380.0,rice
770.0,360.0,370.0,rice
810.0,410.0,380.0,rice
680.0,570.0,430.0,rice
720.0,450.0,350.0,rice
610.0,530.0,430.0,rice
670.0,430.0,390.0,rice
670.0,580.0,390.0,rice
660.0,600.0,380.0,rice
820.0,430.0,380.0,rice
840.0,500.0,440.0,rice
810.0,530.0,420.0,rice
910.0,500.0,400.0,rice
930.0,530.0,380.0,rice
900.0,440.0,380.0,rice
810.0,450.0,350.0,rice
780.0,400.0,380.0,rice
600.0,510.0,360.0,rice
880.0,460.0,420.0,rice
930.0,470.0,370.0,rice
600.0,550.0,450.0,rice
780.0,350.0,440.0,rice
650.0,370.0,400.0,rice
710.0,540.0,160.0,maize
610.0,440.0,170.0,maize
800.0,430.0,160.0,maize
730.0,580.0,210.0,maize
610.0,380.0,200.0,maize
680.0,410.0,160.0,maize
930.0,410.0,170.0,maize
890.0,600.0,190.0,maize
760.0,440.0,170.0,maize
670.0,600.0,250.0,maize
700.0,440.0,190.0,maize
900.0,490.0,210.0,maize
620.0,520.0,160.0,maize
920.0,440.0,160.0,maize
660.0,540.0,210.0,maize
630.0,580.0,220.0,maize
700.0,470.0,170.0,maize
610.0,410.0,170.0,maize
660.0,530.0,190.0,maize
740.0,550.0,190.0,maize
770.0,570.0,210.0,maize
990.0,500.0,150.0,maize
740.0,560.0,220.0,maize
830.0,450.0,210.0,maize
1000.0,480.0,160.0,maize
790.0,510.0,160.0,maize
940.0,390.0,180.0,maize
750.0,490.0,150.0,maize
780.0,480.0,220.0,maize
870.0,540.0,200.0,maize
870.0,350.0,250.0,maize
630.0,430.0,190.0,maize
840.0,570.0,250.0,maize
640.0,350.0,230.0,maize
600.0,460.0,220.0,maize
980.0,440.0,210.0,maize
750.0,560.0,180.0,maize
860.0,550.0,210.0,maize
980.0,350.0,180.0,maize
760.0,570.0,180.0,maize
990.0,560.0,170.0,maize
600.0,440.0,230.0,maize
740.0,480.0,170.0,maize
890.0,600.0,170.0,maize
690.0,510.0,230.0,maize
960.0,460.0,220.0,maize
610.0,600.0,150.0,maize
740.0,580.0,180.0,maize
740.0,430.0,230.0,maize
630.0,430.0,170.0,maize
990.0,360.0,200.0,maize
770.0,360.0,230.0,maize
870.0,600.0,230.0,maize
600.0,380.0,170.0,maize
940.0,540.0,170.0,maize
950.0,380.0,220.0,maize
840.0,440.0,210.0,maize
770.0,580.0,190.0,maize
660.0,440.0,200.0,maize
630.0,350.0,160.0,maize
790.0,450.0,200.0,maize
720.0,600.0,250.0,maize
670.0,510.0,240.0,maize
860.0,360.0,240.0,maize
760.0,480.0,180.0,maize
750.0,530.0,180.0,maize
810.0,450.0,230.0,maize
730.0,450.0,210.0,maize
710.0,350.0,240.0,maize
960.0,540.0,220.0,maize
990.0,390.0,180.0,maize
620.0,480.0,200.0,maize
860.0,370.0,160.0,maize
940.0,500.0,190.0,maize
760.0,390.0,240.0,maize
770.0,520.0,170.0,maize
740.0,390.0,230.0,maize
810.0,490.0,200.0,maize
630.0,420.0,210.0,maize
990.0,380.0,210.0,maize
900.0,520.0,250.0,maize
680.0,400.0,190.0,maize
600.0,570.0,240.0,maize
710.0,520.0,180.0,maize
610.0,590.0,170.0,maize
880.0,380.0,150.0,maize
650.0,600.0,220.0,maize
780.0,370.0,220.0,maize
780.0,580.0,150.0,maize
920.0,600.0,230.0,maize
790.0,590.0,170.0,maize
910.0,550.0,150.0,maize
760.0,510.0,180.0,maize
870.0,480.0,250.0,maize
710.0,600.0,220.0,maize
900.0,570.0,240.0,maize
670.0,350.0,220.0,maize
600.0,540.0,190.0,maize
830.0,580.0,230.0,maize
830.0,570.0,190.0,maize
400.0,720.0,770.0,chickpea
230.0,720.0,840.0,chickpea
390.0,580.0,850.0,chickpea
220.0,720.0,850.0,chickpea
360.0,670.0,770.0,chickpea
320.0,730.0,810.0,chickpea
580.0,700.0,840.0,chickpea
590.0,700.0,840.0,chickpea
420.0,620.0,750.0,chickpea
280.0,740.0,810.0,chickpea
580.0,660.0,790.0,chickpea
430.0,660.0,790.0,chickpea
580.0,630.0,810.0,chickpea
230.0,620.0,850.0,chickpea
270.0,620.0,770.0,chickpea
280.0,720.0,840.0,chickpea
500.0,560.0,760.0,chickpea
390.0,710.0,840.0,chickpea
250.0,780.0,760.0,chickpea
310.0,700.0,770.0,chickpea
260.0,800.0,830.0,chickpea
250.0,680.0,770.0,chickpea
310.0,780.0,760.0,chickpea
600.0,680.0,830.0,chickpea
590.0,620.0,830.0,chickpea
220.0,670.0,780.0,chickpea
360.0,650.0,800.0,chickpea
590.0,600.0,840.0,chickpea
540.0,770.0,850.0,chickpea
430.0,680.0,810.0,chickpea
280.0,760.0,820.0,chickpea
420.0,790.0,850.0,chickpea
320.0,600.0,830.0,chickpea
220.0,780.0,760.0,chickpea
310.0,790.0,750.0,chickpea
280.0,580.0,810.0,chickpea
570.0,580.0,770.0,chickpea
490.0,550.0,780.0,chickpea
460.0,760.0,770.0,chickpea
540.0,610.0,770.0,chickpea
380.0,600.0,760.0,chickpea
590.0,550.0,790.0,chickpea
360.0,760.0,750.0,chickpea
570.0,680.0,810.0,chickpea
350.0,660.0,810.0,chickpea
350.0,640.0,780.0,chickpea
520.0,600.0,790.0,chickpea
270.0,760.0,830.0,chickpea
570.0,600.0,840.0,chickpea
520.0,680.0,780.0,chickpea
430.0,790.0,790.0,chickpea
440.0,740.0,850.0,chickpea
240.0,550.0,780.0,chickpea
290.0,770.0,750.0,chickpea
200.0,600.0,780.0,chickpea
560.0,670.0,780.0,chickpea
370.0,660.0,850.0,chickpea
490.0,710.0,760.0,chickpea
590.0,690.0,800.0,chickpea
200.0,790.0,770.0,chickpea
240.0,560.0,850.0,chickpea
510.0,720.0,750.0,chickpea
570.0,730.0,850.0,chickpea
220.0,640.0,820.0,chickpea
520.0,730.0,790.0,chickpea
290.0,750.0,750.0,chickpea
440.0,590.0,780.0,chickpea
410.0,690.0,820.0,chickpea
520.0,560.0,850.0,chickpea
340.0,760.0,800.0,chickpea
420.0,740.0,830.0,chickpea
340.0,710.0,790.0,chickpea
270.0,730.0,790.0,chickpea
300.0,700.0,790.0,chickpea
570.0,570.0,750.0,chickpea
270.0,790.0,820.0,chickpea
320.0,710.0,850.0,chickpea
310.0,760.0,820.0,chickpea
330.0,750.0,840.0,chickpea
470.0,800.0,770.0,chickpea
540.0,620.0,800.0,chickpea
470.0,790.0,780.0,chickpea
350.0,570.0,830.0,chickpea
530.0,730.0,770.0,chickpea
450.0,610.0,780.0,chickpea
370.0,780.0,790.0,chickpea
300.0,750.0,810.0,chickpea
370.0,550.0,820.0,chickpea
530.0,650.0,760.0,chickpea
220.0,600.0,850.0,chickpea
600.0,610.0,780.0,chickpea
420.0,670.0,770.0,chickpea
390.0,760.0,760.0,chickpea
350.0,630.0,760.0,chickpea
300.0,650.0,820.0,chickpea
570.0,560.0,780.0,chickpea
480.0,650.0,780.0,chickpea
360.0,560.0,830.0,chickpea
400.0,580.0,750.0,chickpea
490.0,690.0,820.0,chickpea
130.0,600.0,250.0,kidneybeans
250.0,700.0,160.0,kidneybeans
310.0,550.0,220.0,kidneybeans
400.0,640.0,160.0,kidneybeans
20.0,610.0,200.0,kidneybeans
260.0,650.0,220.0,kidneybeans
170.0,570.0,210.0,kidneybeans
260.0,800.0,180.0,kidneybeans
170.0,590.0,170.0,kidneybeans
270.0,590.0,220.0,kidneybeans
280.0,580.0,240.0,kidneybeans
250.0,570.0,190.0,kidneybeans
280.0,800.0,170.0,kidneybeans
250.0,600.0,220.0,kidneybeans
120.0,780.0,230.0,kidneybeans
60.0,770.0,250.0,kidneybeans
220.0,790.0,170.0,kidneybeans
270.0,800.0,150.0,kidneybeans
100.0,550.0,230.0,kidneybeans
230.0,650.0,200.0,kidneybeans
190.0,780.0,160.0,kidneybeans
190.0,650.0,250.0,kidneybeans
220.0,700.0,190.0,kidneybeans
370.0,640.0,220.0,kidneybeans
110.0,710.0,170.0,kidneybeans
180.0,790.0,200.0,kidneybeans
210.0,630.0,170.0,kidneybeans
240.0,800.0,220.0,kidneybeans
340.0,600.0,220.0,kidneybeans
160.0,750.0,210.0,kidneybeans
170.0,770.0,230.0,kidneybeans
370.0,720.0,180.0,kidneybeans
400.0,730.0,200.0,kidneybeans
90.0,770.0,170.0,kidneybeans
10.0,620.0,230.0,kidneybeans
330.0,590.0,220.0,kidneybeans
230.0,590.0,190.0,kidneybeans
60.0,620.0,220.0,kidneybeans
250.0,630.0,200.0,kidneybeans
70.0,790.0,230.0,kidneybeans
80.0,720.0,170.0,kidneybeans
270.0,640.0,150.0,kidneybeans
280.0,660.0,230.0,kidneybeans
320.0,570.0,180.0,kidneybeans
270.0,560.0,220.0,kidneybeans
170.0,770.0,240.0,kidneybeans
0.0,650.0,150.0,kidneybeans
130.0,720.0,210.0,kidneybeans
340.0,600.0,230.0,kidneybeans
90.0,800.0,190.0,kidneybeans
110.0,720.0,200.0,kidneybeans
30.0,670.0,240.0,kidneybeans
350.0,690.0,230.0,kidneybeans
30.0,770.0,250.0,kidneybeans
230.0,620.0,190.0,kidneybeans
220.0,710.0,170.0,kidneybeans
310.0,790.0,250.0,kidneybeans
340.0,590.0,180.0,kidneybeans
120.0,630.0,170.0,kidneybeans
270.0,560.0,200.0,kidneybeans
70.0,630.0,240.0,kidneybeans
240.0,670.0,220.0,kidneybeans
110.0,710.0,240.0,kidneybeans
370.0,740.0,150.0,kidneybeans
250.0,760.0,240.0,kidneybeans
340.0,660.0,170.0,kidneybeans
200.0,690.0,150.0,kidneybeans
370.0,650.0,160.0,kidneybeans
180.0,740.0,150.0,kidneybeans
40.0,670.0,250.0,kidneybeans
370.0,560.0,250.0,kidneybeans
50.0,590.0,150.0,kidneybeans
110.0,610.0,210.0,kidneybeans
220.0,800.0,200.0,kidneybeans
120.0,610.0,190.0,kidneybeans
50.0,740.0,210.0,kidneybeans
270.0,690.0,220.0,kidneybeans
310.0,750.0,180.0,kidneybeans
360.0,680.0,200.0,kidneybeans
50.0,650.0,160.0,kidneybeans
320.0,790.0,150.0,kidneybeans
110.0,780.0,220.0,kidneybeans
0.0,550.0,220.0,kidneybeans
140.0,590.0,150.0,kidneybeans
290.0,680.0,230.0,kidneybeans
320.0,680.0,190.0,kidneybeans
170.0,640.0,170.0,kidneybeans
130.0,690.0,190.0,kidneybeans
140.0,670.0,220.0,kidneybeans
90.0,690.0,200.0,kidneybeans
200.0,730.0,220.0,kidneybeans
400.0,780.0,200.0,kidneybeans
270.0,720.0,230.0,kidneybeans
140.0,670.0,150.0,kidneybeans
70.0,560.0,180.0,kidneybeans
270.0,650.0,180.0,kidneybeans
300.0,630.0,160.0,kidneybeans
370.0,700.0,250.0,kidneybeans
270.0,630.0,190.0,kidneybeans
220.0,600.0,240.0,kidneybeans
30.0,720.0,240.0,pigeonpeas
400.0,590.0,230.0,pigeonpeas
330.0,730.0,230.0,pigeonpeas
270.0,570.0,240.0,pigeonpeas
100.0,790.0,180.0,pigeonpeas
300.0,750.0,250.0,pigeonpeas
400.0,700.0,200.0,pigeonpeas
380.0,550.0,190.0,pigeonpeas
350.0,580.0,200.0,pigeonpeas
380.0,610.0,210.0,pigeonpeas
330.0,580.0,240.0,pigeonpeas
160.0,560.0,170.0,pigeonpeas
310.0,720.0,170.0,pigeonpeas
160.0,800.0,200.0,pigeonpeas
270.0,720.0,170.0,pigeonpeas
400.0,620.0,190.0,pigeonpeas
180.0,580.0,160.0,pigeonpeas
30.0,680.0,160.0,pigeonpeas
260.0,670.0,240.0,pigeonpeas
160.0,700.0,200.0,pigeonpeas
240.0,630.0,190.0,pigeonpeas
90.0,760.0,250.0,pigeonpeas
160.0,550.0,190.0,pigeonpeas
280.0,750.0,210.0,pigeonpeas
160.0,710.0,240.0,pigeonpeas
240.0,700.0,210.0,pigeonpeas
380.0,720.0,210.0,pigeonpeas
90.0,660.0,210.0,pigeonpeas
340.0,560.0,170.0,pigeonpeas
10.0,760.0,190.0,pigeonpeas
60.0,690.0,190.0,pigeonpeas
260.0,730.0,210.0,pigeonpeas
270.0,610.0,180.0,pigeonpeas
270.0,710.0,230.0,pigeonpeas
360.0,610.0,210.0,pigeonpeas
170.0,730.0,180.0,pigeonpeas
260.0,720.0,220.0,pigeonpeas
170.0,640.0,160.0,pigeonpeas
140.0,740.0,190.0,pigeonpeas
390.0,600.0,150.0,pigeonpeas
60.0,660.0,150.0,pigeonpeas
80.0,590.0,180.0,pigeonpeas
20.0,670.0,180.0,pigeonpeas
10.0,760.0,170.0,pigeonpeas
160.0,730.0,190.0,pigeonpeas
230.0,750.0,250.0,pigeonpeas
320.0,700.0,200.0,pigeonpeas
280.0,590.0,220.0,pigeonpeas
50.0,620.0,230.0,pigeonpeas
360.0,670.0,250.0,pigeonpeas
10.0,660.0,230.0,pigeonpeas
240.0,730.0,200.0,pigeonpeas
170.0,670.0,180.0,pigeonpeas
50.0,550.0,180.0,pigeonpeas
50.0,560.0,240.0,pigeonpeas
370.0,770.0,170.0,pigeonpeas
130.0,730.0,200.0,pigeonpeas
60.0,630.0,230.0,pigeonpeas
160.0,770.0,220.0,pigeonpeas
250.0,640.0,200.0,pigeonpeas
340.0,750.0,240.0,pigeonpeas
200.0,770.0,230.0,pigeonpeas
350.0,800.0,250.0,pigeonpeas
140.0,750.0,240.0,pigeonpeas
360.0,800.0,210.0,pigeonpeas
70.0,770.0,180.0,pigeonpeas
290.0,780.0,250.0,pigeonpeas
300.0,600.0,210.0,pigeonpeas
200.0,740.0,160.0,pigeonpeas
190.0,570.0,230.0,pigeonpeas
30.0,600.0,190.0,pigeonpeas
50.0,770.0,190.0,pigeonpeas
50.0,680.0,200.0,pigeonpeas
370.0,730.0,210.0,pigeonpeas
90.0,590.0,240.0,pigeonpeas
200.0,720.0,150.0,pigeonpeas
310.0,560.0,230.0,pigeonpeas
0.0,700.0,210.0,pigeonpeas
210.0,740.0,150.0,pigeonpeas
130.0,670.0,180.0,pigeonpeas
270.0,740.0,200.0,pigeonpeas
290.0,720.0,240.0,pigeonpeas
50.0,680.0,200.0,pigeonpeas
390.0,570.0,190.0,pigeonpeas
220.0,620.0,160.0,pigeonpeas
180.0,550.0,230.0,pigeonpeas
390.0,770.0,210.0,pigeonpeas
130.0,750.0,200.0,pigeonpeas
270.0,710.0,240.0,pigeonpeas
260.0,640.0,220.0,pigeonpeas
230.0,550.0,160.0,pigeonpeas
40.0,690.0,190.0,pigeonpeas
200.0,670.0,190.0,pigeonpeas
70.0,740.0,170.0,pigeonpeas
170.0,640.0,180.0,pigeonpeas
350.0,710.0,170.0,pigeonpeas
110.0,720.0,220.0,pigeonpeas
200.0,600.0,220.0,pigeonpeas
100.0,710.0,180.0,pigeonpeas
330.0,610.0,240.0,pigeonpeas
30.0,490.0,180.0,mothbeans
220.0,590.0,230.0,mothbeans
360.0,580.0,250.0,mothbeans
40.0,430.0,180.0,mothbeans
290.0,540.0,160.0,mothbeans
320.0,430.0,220.0,mothbeans
140.0,550.0,150.0,mothbeans
50.0,350.0,200.0,mothbeans
250.0,570.0,240.0,mothbeans
110.0,530.0,240.0,mothbeans
400.0,490.0,170.0,mothbeans
380.0,560.0,250.0,mothbeans
270.0,430.0,230.0,mothbeans
240.0,380.0,220.0,mothbeans
230.0,450.0,210.0,mothbeans
290.0,570.0,200.0,mothbeans
310.0,350.0,230.0,mothbeans
0.0,550.0,250.0,mothbeans
70.0,450.0,220.0,mothbeans
170.0,580.0,250.0,mothbeans
110.0,440.0,170.0,mothbeans
220.0,490.0,220.0,mothbeans
90.0,510.0,190.0,mothbeans
280.0,480.0,150.0,mothbeans
260.0,500.0,190.0,mothbeans
360.0,560.0,200.0,mothbeans
80.0,600.0,180.0,mothbeans
240.0,370.0,210.0,mothbeans
220.0,430.0,240.0,mothbeans
360.0,430.0,240.0,mothbeans
220.0,440.0,240.0,mothbeans
170.0,430.0,220.0,mothbeans
80.0,450.0,150.0,mothbeans
70.0,560.0,230.0,mothbeans
360.0,570.0,160.0,mothbeans
110.0,450.0,190.0,mothbeans
60.0,360.0,220.0,mothbeans
170.0,570.0,200.0,mothbeans
40.0,470.0,200.0,mothbeans
90.0,490.0,160.0,mothbeans
250.0,510.0,240.0,mothbeans
360.0,440.0,210.0,mothbeans
210.0,380.0,200.0,mothbeans
370.0,570.0,200.0,mothbeans
320.0,480.0,180.0,mothbeans
290.0,440.0,200.0,mothbeans
250.0,510.0,180.0,mothbeans
100.0,440.0,240.0,mothbeans
230.0,350.0,180.0,mothbeans
90.0,600.0,230.0,mothbeans
30.0,580.0,210.0,mothbeans
220.0,420.0,220.0,mothbeans
120.0,390.0,210.0,mothbeans
390.0,360.0,220.0,mothbeans
320.0,410.0,160.0,mothbeans
300.0,410.0,150.0,mothbeans
190.0,360.0,220.0,mothbeans
40.0,460.0,150.0,mothbeans
210.0,390.0,200.0,mothbeans
350.0,570.0,250.0,mothbeans
220.0,550.0,240.0,mothbeans
350.0,510.0,170.0,mothbeans
170.0,560.0,170.0,mothbeans
280.0,570.0,170.0,mothbeans
220.0,360.0,160.0,mothbeans
110.0,410.0,190.0,mothbeans
380.0,380.0,180.0,mothbeans
230.0,370.0,240.0,mothbeans
250.0,350.0,200.0,mothbeans
400.0,450.0,200.0,mothbeans
230.0,580.0,190.0,mothbeans
20.0,560.0,230.0,mothbeans
30.0,560.0,170.0,mothbeans
260.0,510.0,250.0,mothbeans
390.0,420.0,200.0,mothbeans
270.0,590.0,200.0,mothbeans
240.0,450.0,190.0,mothbeans
70.0,400.0,170.0,mothbeans
150.0,450.0,230.0,mothbeans
260.0,520.0,230.0,mothbeans
200.0,450.0,160.0,mothbeans
340.0,540.0,240.0,mothbeans
190.0,510.0,250.0,mothbeans
290.0,410.0,210.0,mothbeans
200.0,500.0,220.0,mothbeans
110.0,400.0,230.0,mothbeans
150.0,540.0,150.0,mothbeans
350.0,550.0,220.0,mothbeans
90.0,590.0,250.0,mothbeans
400.0,450.0,180.0,mothbeans
350.0,380.0,190.0,mothbeans
140.0,580.0,170.0,mothbeans
400.0,550.0,180.0,mothbeans
180.0,360.0,230.0,mothbeans
350.0,520.0,150.0,mothbeans
40.0,590.0,220.0,mothbeans
220.0,510.0,160.0,mothbeans
330.0,470.0,170.0,mothbeans
20.0,510.0,170.0,mothbeans
160.0,510.0,210.0,mothbeans
190.0,550.0,200.0,mungbean
80.0,540.0,200.0,mungbean
360.0,550.0,200.0,mungbean
100.0,560.0,160.0,mungbean
220.0,560.0,170.0,mungbean
90.0,570.0,240.0,mungbean
340.0,590.0,230.0,mungbean
310.0,510.0,250.0,mungbean
0.0,490.0,180.0,mungbean
210.0,390.0,200.0,mungbean
280.0,350.0,220.0,mungbean
170.0,520.0,170.0,mungbean
240.0,420.0,230.0,mungbean
280.0,460.0,160.0,mungbean
210.0,380.0,210.0,mungbean
340.0,600.0,250.0,mungbean
190.0,530.0,220.0,mungbean
310.0,580.0,150.0,mungbean
190.0,350.0,240.0,mungbean
240.0,530.0,170.0,mungbean
130.0,470.0,200.0,mungbean
310.0,530.0,160.0,mungbean
280.0,450.0,230.0,mungbean
310.0,370.0,210.0,mungbean
330.0,600.0,150.0,mungbean
340.0,450.0,210.0,mungbean
130.0,570.0,250.0,mungbean
330.0,570.0,170.0,mungbean
320.0,570.0,220.0,mungbean
230.0,590.0,250.0,mungbean
350.0,410.0,180.0,mungbean
60.0,480.0,240.0,mungbean
290.0,360.0,250.0,mungbean
40.0,360.0,220.0,mungbean
100.0,590.0,220.0,mungbean
140.0,480.0,210.0,mungbean
80.0,500.0,210.0,mungbean
200.0,400.0,150.0,mungbean
360.0,430.0,220.0,mungbean
140.0,570.0,150.0,mungbean
110.0,600.0,230.0,mungbean
100.0,590.0,150.0,mungbean
70.0,600.0,250.0,mungbean
20.0,470.0,150.0,mungbean
200.0,450.0,220.0,mungbean
20.0,390.0,150.0,mungbean
270.0,400.0,240.0,mungbean
350.0,480.0,150.0,mungbean
40.0,590.0,250.0,mungbean
10.0,480.0,240.0,mungbean
360.0,430.0,210.0,mungbean
110.0,460.0,240.0,mungbean
340.0,470.0,190.0,mungbean
210.0,440.0,180.0,mungbean
170.0,580.0,200.0,mungbean
250.0,400.0,210.0,mungbean
20.0,380.0,180.0,mungbean
90.0,480.0,200.0,mungbean
370.0,490.0,250.0,mungbean
360.0,380.0,150.0,mungbean
400.0,580.0,150.0,mungbean
300.0,440.0,160.0,mungbean
10.0,590.0,230.0,mungbean
90.0,480.0,220.0,mungbean
140.0,410.0,170.0,mungbean
350.0,520.0,190.0,mungbean
310.0,480.0,170.0,mungbean
40.0,410.0,200.0,mungbean
300.0,370.0,250.0,mungbean
90.0,350.0,200.0,mungbean
200.0,410.0,200.0,mungbean
370.0,500.0,230.0,mungbean
340.0,350.0,210.0,mungbean
140.0,370.0,150.0,mungbean
230.0,390.0,220.0,mungbean
50.0,450.0,210.0,mungbean
220.0,370.0,200.0,mungbean
400.0,510.0,170.0,mungbean
270.0,560.0,200.0,mungbean
310.0,400.0,220.0,mungbean
380.0,360.0,210.0,mungbean
60.0,370.0,170.0,mungbean
60.0,470.0,180.0,mungbean
240.0,440.0,170.0,mungbean
250.0,590.0,190.0,mungbean
320.0,560.0,210.0,mungbean
80.0,450.0,180.0,mungbean
190.0,390.0,170.0,mungbean
390.0,370.0,150.0,mungbean
330.0,370.0,190.0,mungbean
260.0,540.0,170.0,mungbean
210.0,510.0,150.0,mungbean
220.0,540.0,200.0,mungbean
290.0,450.0,160.0,mungbean
40.0,400.0,210.0,mungbean
100.0,370.0,220.0,mungbean
40.0,440.0,190.0,mungbean
200.0,450.0,170.0,mungbean
230.0,450.0,230.0,mungbean
250.0,480.0,210.0,mungbean
560.0,790.0,150.0,blackgram
250.0,620.0,210.0,blackgram
420.0,610.0,220.0,blackgram
420.0,730.0,250.0,blackgram
440.0,580.0,180.0,blackgram
500.0,550.0,160.0,blackgram
350.0,720.0,210.0,blackgram
300.0,640.0,200.0,blackgram
270.0,640.0,210.0,blackgram
500.0,740.0,170.0,blackgram
390.0,730.0,240.0,blackgram
570.0,670.0,250.0,blackgram
520.0,630.0,190.0,blackgram
550.0,660.0,220.0,blackgram
510.0,560.0,180.0,blackgram
360.0,660.0,150.0,blackgram
590.0,550.0,190.0,blackgram
500.0,580.0,230.0,blackgram
300.0,650.0,250.0,blackgram
200.0,620.0,180.0,blackgram
580.0,710.0,150.0,blackgram
250.0,710.0,240.0,blackgram
520.0,710.0,160.0,blackgram
400.0,630.0,180.0,blackgram
200.0,600.0,250.0,blackgram
480.0,610.0,210.0,blackgram
490.0,680.0,220.0,blackgram
480.0,620.0,150.0,blackgram
320.0,660.0,170.0,blackgram
210.0,630.0,220.0,blackgram
200.0,720.0,190.0,blackgram
250.0,650.0,210.0,blackgram
410.0,780.0,210.0,blackgram
530.0,670.0,170.0,blackgram
390.0,600.0,210.0,blackgram
250.0,760.0,170.0,blackgram
210.0,780.0,190.0,blackgram
570.0,600.0,170.0,blackgram
560.0,750.0,150.0,blackgram
490.0,720.0,150.0,blackgram
240.0,800.0,190.0,blackgram
490.0,760.0,180.0,blackgram
280.0,680.0,190.0,blackgram
550.0,780.0,210.0,blackgram
500.0,640.0,250.0,blackgram
340.0,800.0,190.0,blackgram
200.0,680.0,230.0,blackgram
550.0,670.0,160.0,blackgram
230.0,700.0,150.0,blackgram
530.0,740.0,150.0,blackgram
260.0,670.0,160.0,blackgram
330.0,800.0,220.0,blackgram
370.0,790.0,190.0,blackgram
330.0,750.0,210.0,blackgram
220.0,550.0,200.0,blackgram
200.0,680.0,170.0,blackgram
430.0,680.0,200.0,blackgram
440.0,760.0,220.0,blackgram
340.0,600.0,160.0,blackgram
210.0,720.0,170.0,blackgram
250.0,680.0,190.0,blackgram
410.0,620.0,150.0,blackgram
280.0,650.0,230.0,blackgram
350.0,640.0,150.0,blackgram
520.0,580.0,160.0,blackgram
580.0,750.0,250.0,blackgram
340.0,660.0,190.0,blackgram
520.0,700.0,160.0,blackgram
230.0,570.0,190.0,blackgram
420.0,580.0,250.0,blackgram
370.0,620.0,170.0,blackgram
440.0,750.0,220.0,blackgram
210.0,800.0,200.0,blackgram
560.0,760.0,160.0,blackgram
290.0,760.0,150.0,blackgram
430.0,610.0,200.0,blackgram
550.0,600.0,150.0,blackgram
440.0,630.0,150.0,blackgram
290.0,670.0,210.0,blackgram
470.0,630.0,160.0,blackgram
400.0,680.0,170.0,blackgram
580.0,610.0,150.0,blackgram
410.0,740.0,180.0,blackgram
580.0,790.0,170.0,blackgram
270.0,620.0,240.0,blackgram
270.0,600.0,170.0,blackgram
520.0,650.0,200.0,blackgram
440.0,550.0,250.0,blackgram
210.0,620.0,240.0,blackgram
600.0,590.0,220.0,blackgram
330.0,770.0,210.0,blackgram
590.0,580.0,170.0,blackgram
290.0,630.0,170.0,blackgram
590.0,630.0,180.0,blackgram
290.0,700.0,150.0,blackgram
580.0,730.0,160.0,blackgram
550.0,770.0,220.0,blackgram
420.0,790.0,230.0,blackgram
440.0,770.0,210.0,blackgram
380.0,620.0,250.0,blackgram
320.0,760.0,150.0,lentil
130.0,610.0,220.0,lentil
380.0,600.0,200.0,lentil
110.0,740.0,170.0,lentil
370.0,710.0,160.0,lentil
290.0,710.0,180.0,lentil
20.0,720.0,180.0,lentil
60.0,590.0,210.0,lentil
130.0,640.0,200.0,lentil
80.0,580.0,170.0,lentil
60.0,770.0,200.0,lentil
20.0,750.0,220.0,lentil
30.0,690.0,230.0,lentil
270.0,800.0,240.0,lentil
390.0,780.0,150.0,lentil
400.0,790.0,170.0,lentil
370.0,620.0,220.0,lentil
310.0,600.0,240.0,lentil
220.0,670.0,220.0,lentil
30.0,780.0,180.0,lentil
40.0,800.0,160.0,lentil
130.0,610.0,240.0,lentil
120.0,660.0,200.0,lentil
40.0,610.0,210.0,lentil
90.0,600.0,210.0,lentil
180.0,660.0,220.0,lentil
320.0,560.0,180.0,lentil
60.0,720.0,150.0,lentil
150.0,770.0,200.0,lentil
0.0,650.0,240.0,lentil
300.0,790.0,220.0,lentil
30.0,630.0,160.0,lentil
20.0,780.0,230.0,lentil
100.0,780.0,180.0,lentil
140.0,670.0,250.0,lentil
390.0,650.0,230.0,lentil
190.0,720.0,150.0,lentil
180.0,570.0,210.0,lentil
310.0,580.0,150.0,lentil
280.0,580.0,250.0,lentil
50.0,650.0,190.0,lentil
160.0,650.0,190.0,lentil
340.0,650.0,190.0,lentil
140.0,690.0,190.0,lentil
220.0,550.0,160.0,lentil
240.0,610.0,170.0,lentil
20.0,790.0,150.0,lentil
260.0,630.0,170.0,lentil
270.0,610.0,150.0,lentil
240.0,700.0,160.0,lentil
130.0,740.0,250.0,lentil
60.0,640.0,230.0,lentil
120.0,580.0,230.0,lentil
320.0,790.0,220.0,lentil
60.0,680.0,180.0,lentil
100.0,790.0,200.0,lentil
380.0,770.0,220.0,lentil
170.0,740.0,170.0,lentil
260.0,680.0,240.0,lentil
230.0,750.0,170.0,lentil
320.0,780.0,220.0,lentil
190.0,790.0,190.0,lentil
220.0,600.0,180.0,lentil
280.0,690.0,160.0,lentil
10.0,670.0,210.0,lentil
120.0,670.0,230.0,lentil
360.0,670.0,200.0,lentil
280.0,700.0,210.0,lentil
120.0,710.0,190.0,lentil
220.0,680.0,160.0,lentil
260.0,660.0,220.0,lentil
160.0,650.0,160.0,lentil
140.0,590.0,220.0,lentil
330.0,590.0,190.0,lentil
210.0,630.0,170.0,lentil
0.0,690.0,210.0,lentil
100.0,750.0,170.0,lentil
300.0,610.0,180.0,lentil
0.0,740.0,170.0,lentil
350.0,740.0,220.0,lentil
70.0,630.0,240.0,lentil
90.0,560.0,170.0,lentil
140.0,740.0,150.0,lentil
140.0,760.0,200.0,lentil
360.0,650.0,160.0,lentil
280.0,670.0,210.0,lentil
280.0,790.0,160.0,lentil
400.0,610.0,220.0,lentil
100.0,700.0,190.0,lentil
120.0,800.0,190.0,lentil
370.0,770.0,200.0,lentil
0.0,670.0,220.0,lentil
70.0,730.0,250.0,lentil
100.0,560.0,180.0,lentil
390.0,700.0,150.0,lentil
260.0,560.0,220.0,lentil
90.0,770.0,170.0,lentil
40.0,590.0,190.0,lentil
340.0,730.0,150.0,lentil
330.0,770.0,150.0,lentil
20.0,240.0,380.0,pomegranate
60.0,180.0,370.0,pomegranate
80.0,260.0,360.0,pomegranate
370.0,180.0,390.0,pomegranate
0.0,270.0,380.0,pomegranate
310.0,250.0,380.0,pomegranate
210.0,210.0,380.0,pomegranate
60.0,300.0,400.0,pomegranate
250.0,270.0,410.0,pomegranate
150.0,110.0,380.0,pomegranate
140.0,50.0,360.0,pomegranate
160.0,100.0,410.0,pomegranate
360.0,70.0,370.0,pomegranate
40.0,200.0,410.0,pomegranate
290.0,220.0,400.0,pomegranate
160.0,150.0,420.0,pomegranate
180.0,270.0,410.0,pomegranate
110.0,180.0,420.0,pomegranate
50.0,150.0,380.0,pomegranate
180.0,230.0,440.0,pomegranate
90.0,80.0,400.0,pomegranate
400.0,270.0,450.0,pomegranate
220.0,230.0,440.0,pomegranate
90.0,160.0,390.0,pomegranate
120.0,290.0,400.0,pomegranate
0.0,170.0,420.0,pomegranate
20.0,210.0,440.0,pomegranate
280.0,60.0,400.0,pomegranate
80.0,230.0,440.0,pomegranate
290.0,160.0,360.0,pomegranate
170.0,180.0,430.0,pomegranate
340.0,210.0,420.0,pomegranate
210.0,230.0,420.0,pomegranate
250.0,170.0,400.0,pomegranate
80.0,250.0,360.0,pomegranate
260.0,180.0,420.0,pomegranate
40.0,190.0,420.0,pomegranate
360.0,240.0,410.0,pomegranate
50.0,240.0,400.0,pomegranate
190.0,170.0,390.0,pomegranate
390.0,300.0,380.0,pomegranate
50.0,290.0,440.0,pomegranate
40.0,240.0,430.0,pomegranate
380.0,210.0,350.0,pomegranate
370.0,110.0,360.0,pomegranate
90.0,250.0,410.0,pomegranate
290.0,220.0,430.0,pomegranate
50.0,210.0,380.0,pomegranate
220.0,260.0,380.0,pomegranate
40.0,180.0,370.0,pomegranate
210.0,60.0,410.0,pomegranate
290.0,210.0,450.0,pomegranate
230.0,50.0,440.0,pomegranate
130.0,70.0,430.0,pomegranate
50.0,130.0,370.0,pomegranate
270.0,240.0,410.0,pomegranate
70.0,230.0,350.0,pomegranate
120.0,200.0,390.0,pomegranate
40.0,190.0,430.0,pomegranate
30.0,90.0,450.0,pomegranate
10.0,270.0,360.0,pomegranate
230.0,300.0,440.0,pomegranate
240.0,210.0,420.0,pomegranate
130.0,300.0,370.0,pomegranate
400.0,110.0,440.0,pomegranate
210.0,90.0,400.0,pomegranate
30.0,270.0,440.0,pomegranate
400.0,290.0,420.0,pomegranate
140.0,250.0,400.0,pomegranate
380.0,140.0,370.0,pomegranate
340.0,90.0,360.0,pomegranate
320.0,140.0,370.0,pomegranate
180.0,210.0,350.0,pomegranate
80.0,230.0,380.0,pomegranate
150.0,60.0,410.0,pomegranate
0.0,50.0,360.0,pomegranate
220.0,90.0,440.0,pomegranate
140.0,80.0,430.0,pomegranate
310.0,110.0,450.0,pomegranate
390.0,170.0,450.0,pomegranate
100.0,50.0,420.0,pomegranate
80.0,280.0,380.0,pomegranate
320.0,130.0,420.0,pomegranate
180.0,90.0,400.0,pomegranate
200.0,270.0,410.0,pomegranate
390.0,250.0,360.0,pomegranate
200.0,70.0,450.0,pomegranate
110.0,100.0,450.0,pomegranate
400.0,180.0,430.0,pomegranate
30.0,260.0,390.0,pomegranate
90.0,160.0,360.0,pomegranate
300.0,200.0,380.0,pomegranate
400.0,90.0,410.0,pomegranate
400.0,300.0,350.0,pomegranate
320.0,250.0,350.0,pomegranate
330.0,230.0,450.0,pomegranate
40.0,140.0,410.0,pomegranate
130.0,170.0,450.0,pomegranate
390.0,240.0,390.0,pomegranate
80.0,280.0,370.0,pomegranate
910.0,940.0,460.0,banana
1050.0,950.0,500.0,banana
1080.0,920.0,530.0,banana
860.0,760.0,540.0,banana
800.0,770.0,490.0,banana
930.0,940.0,530.0,banana
900.0,920.0,550.0,banana
1080.0,890.0,530.0,banana
1080.0,880.0,550.0,banana
1050.0,770.0,520.0,banana
1180.0,880.0,520.0,banana
1010.0,870.0,540.0,banana
950.0,750.0,500.0,banana
1060.0,850.0,530.0,banana
860.0,950.0,490.0,banana
830.0,790.0,550.0,banana
850.0,950.0,470.0,banana
1090.0,790.0,450.0,banana
1000.0,760.0,450.0,banana
1170.0,860.0,480.0,banana
1140.0,940.0,530.0,banana
1100.0,780.0,500.0,banana
940.0,700.0,480.0,banana
800.0,710.0,470.0,banana
1140.0,790.0,510.0,banana
880.0,780.0,450.0,banana
1120.0,730.0,480.0,banana
1170.0,760.0,470.0,banana
1110.0,870.0,480.0,banana
890.0,830.0,470.0,banana
930.0,910.0,470.0,banana
920.0,810.0,520.0,banana
1050.0,740.0,450.0,banana
1020.0,710.0,480.0,banana
940.0,910.0,510.0,banana
1160.0,710.0,470.0,banana
1170.0,790.0,490.0,banana
1190.0,720.0,550.0,banana
990.0,730.0,530.0,banana
910.0,840.0,520.0,banana
800.0,900.0,470.0,banana
1010.0,700.0,480.0,banana
1080.0,890.0,530.0,banana
1000.0,800.0,520.0,banana
1090.0,910.0,530.0,banana
820.0,780.0,460.0,banana
1060.0,700.0,550.0,banana
900.0,860.0,520.0,banana
830.0,950.0,500.0,banana
1190.0,900.0,480.0,banana
1070.0,720.0,450.0,banana
1160.0,810.0,550.0,banana
1010.0,750.0,500.0,banana
930.0,810.0,500.0,banana
950.0,750.0,450.0,banana
1070.0,710.0,550.0,banana
830.0,940.0,470.0,banana
1020.0,730.0,540.0,banana
860.0,790.0,450.0,banana
1170.0,860.0,530.0,banana
1110.0,790.0,530.0,banana
950.0,740.0,500.0,banana
910.0,750.0,550.0,banana
930.0,830.0,460.0,banana
920.0,850.0,510.0,banana
1040.0,800.0,540.0,banana
1030.0,720.0,510.0,banana
920.0,750.0,450.0,banana
930.0,850.0,490.0,banana
1200.0,870.0,520.0,banana
1080.0,720.0,460.0,banana
1050.0,880.0,540.0,banana
980.0,790.0,500.0,banana
1110.0,880.0,550.0,banana
970.0,740.0,450.0,banana
950.0,820.0,480.0,banana
890.0,910.0,550.0,banana
890.0,850.0,550.0,banana
1180.0,880.0,510.0,banana
1010.0,920.0,450.0,banana
990.0,920.0,470.0,banana
820.0,770.0,460.0,banana
900.0,860.0,550.0,banana
950.0,880.0,520.0,banana
1040.0,730.0,460.0,banana
1020.0,730.0,520.0,banana
1000.0,740.0,520.0,banana
940.0,890.0,480.0,banana
990.0,700.0,460.0,banana
1120.0,870.0,480.0,banana
1170.0,820.0,450.0,banana
960.0,860.0,510.0,banana
1130.0,850.0,450.0,banana
1050.0,930.0,460.0,banana
850.0,890.0,510.0,banana
1080.0,940.0,470.0,banana
920.0,810.0,520.0,banana
1100.0,710.0,540.0,banana
820.0,750.0,550.0,banana
1170.0,810.0,530.0,banana
20.0,400.0,270.0,mango
390.0,240.0,310.0,mango
210.0,260.0,270.0,mango
250.0,220.0,250.0,mango
0.0,210.0,320.0,mango
200.0,190.0,350.0,mango
190.0,210.0,340.0,mango
180.0,170.0,310.0,mango
110.0,360.0,330.0,mango
300.0,280.0,300.0,mango
180.0,190.0,270.0,mango
230.0,230.0,270.0,mango
370.0,300.0,340.0,mango
110.0,270.0,300.0,mango
120.0,190.0,310.0,mango
30.0,280.0,330.0,mango
370.0,380.0,320.0,mango
260.0,370.0,300.0,mango
140.0,180.0,300.0,mango
400.0,160.0,350.0,mango
40.0,200.0,250.0,mango
360.0,250.0,330.0,mango
300.0,170.0,310.0,mango
280.0,370.0,280.0,mango
380.0,150.0,300.0,mango
120.0,370.0,300.0,mango
380.0,190.0,310.0,mango
80.0,330.0,290.0,mango
150.0,270.0,280.0,mango
340.0,160.0,250.0,mango
110.0,360.0,310.0,mango
330.0,290.0,340.0,mango
120.0,310.0,260.0,mango
120.0,340.0,280.0,mango
50.0,160.0,310.0,mango
10.0,300.0,290.0,mango
160.0,350.0,310.0,mango
350.0,180.0,260.0,mango
40.0,400.0,260.0,mango
90.0,290.0,340.0,mango
20.0,380.0,330.0,mango
260.0,320.0,320.0,mango
340.0,380.0,310.0,mango
50.0,320.0,330.0,mango
310.0,290.0,260.0,mango
340.0,340.0,350.0,mango
360.0,190.0,320.0,mango
70.0,170.0,260.0,mango
380.0,150.0,270.0,mango
50.0,190.0,250.0,mango
370.0,360.0,260.0,mango
210.0,310.0,320.0,mango
370.0,360.0,270.0,mango
230.0,230.0,300.0,mango
360.0,260.0,260.0,mango
240.0,330.0,350.0,mango
260.0,180.0,300.0,mango
220.0,170.0,260.0,mango
110.0,340.0,320.0,mango
290.0,350.0,280.0,mango
220.0,280.0,260.0,mango
230.0,240.0,320.0,mango
10.0,350.0,340.0,mango
20.0,240.0,340.0,mango
390.0,370.0,250.0,mango
150.0,360.0,270.0,mango
30.0,180.0,310.0,mango
80.0,380.0,320.0,mango
330.0,310.0,340.0,mango
140.0,290.0,320.0,mango
180.0,200.0,260.0,mango
90.0,210.0,320.0,mango
200.0,300.0,270.0,mango
90.0,380.0,250.0,mango
260.0,240.0,340.0,mango
310.0,360.0,290.0,mango
140.0,180.0,350.0,mango
400.0,160.0,350.0,mango
280.0,270.0,340.0,mango
0.0,170.0,300.0,mango
10.0,290.0,290.0,mango
20.0,360.0,310.0,mango
120.0,270.0,260.0,mango
70.0,280.0,350.0,mango
0.0,360.0,260.0,mango
260.0,350.0,310.0,mango
270.0,210.0,300.0,mango
220.0,380.0,310.0,mango
220.0,180.0,310.0,mango
280.0,230.0,280.0,mango
70.0,310.0,270.0,mango
290.0,340.0,260.0,mango
80.0,370.0,330.0,mango
390.0,160.0,270.0,mango
400.0,240.0,250.0,mango
190.0,380.0,260.0,mango
210.0,210.0,300.0,mango
220.0,180.0,330.0,mango
310.0,200.0,300.0,mango
180.0,260.0,310.0,mango
240.0,1300.0,1950.0,carrot
130.0,1440.0,2040.0,carrot
220.0,1230.0,2050.0,carrot
360.0,1250.0,1960.0,carrot
240.0,1310.0,1960.0,carrot
20.0,1230.0,1980.0,carrot
350.0,1400.0,1970.0,carrot
110.0,1220.0,1950.0,carrot
60.0,1230.0,2030.0,carrot
170.0,1340.0,2040.0,carrot
250.0,1300.0,1970.0,carrot
270.0,1450.0,2050.0,carrot
90.0,1220.0,2010.0,carrot
160.0,1390.0,2030.0,carrot
320.0,1410.0,2040.0,carrot
220.0,1380.0,1950.0,carrot
310.0,1440.0,2020.0,carrot
30.0,1360.0,2050.0,carrot
280.0,1220.0,1970.0,carrot
40.0,1360.0,2040.0,carrot
390.0,1450.0,2010.0,carrot
380.0,1320.0,1970.0,carrot
360.0,1330.0,1980.0,carrot
250.0,1210.0,2010.0,carrot
150.0,1250.0,1990.0,carrot
240.0,1400.0,2050.0,carrot
130.0,1320.0,2030.0,carrot
50.0,1260.0,1970.0,carrot
300.0,1200.0,2000.0,carrot
230.0,1420.0,1970.0,carrot
260.0,1350.0,2030.0,carrot
70.0,1260.0,2030.0,carrot
320.0,1390.0,1980.0,carrot
90.0,1410.0,2020.0,carrot
200.0,1420.0,1960.0,carrot
320.0,1290.0,2010.0,carrot
30.0,1340.0,1990.0,carrot
380.0,1380.0,2040.0,carrot
140.0,1310.0,1980.0,carrot
200.0,1220.0,2040.0,carrot
400.0,1260.0,2010.0,carrot
360.0,1280.0,2040.0,carrot
110.0,1320.0,1970.0,carrot
0.0,1370.0,1950.0,carrot
190.0,1230.0,2000.0,carrot
310.0,1360.0,1970.0,carrot
40.0,1340.0,2000.0,carrot
390.0,1390.0,2010.0,carrot
80.0,1270.0,1960.0,carrot
390.0,1380.0,2030.0,carrot
320.0,1200.0,2040.0,carrot
120.0,1420.0,2030.0,carrot
80.0,1330.0,1950.0,carrot
80.0,1390.0,1990.0,carrot
210.0,1340.0,2020.0,carrot
400.0,1400.0,1950.0,carrot
390.0,1270.0,2020.0,carrot
190.0,1200.0,1950.0,carrot
210.0,1390.0,2010.0,carrot
170.0,1360.0,1950.0,carrot
330.0,1390.0,2030.0,carrot
220.0,1330.0,2010.0,carrot
320.0,1300.0,1960.0,carrot
370.0,1350.0,2050.0,carrot
150.0,1400.0,1950.0,carrot
390.0,1320.0,1960.0,carrot
400.0,1210.0,1990.0,carrot
400.0,1320.0,2020.0,carrot
290.0,1420.0,2030.0,carrot
320.0,1210.0,1990.0,carrot
60.0,1400.0,2050.0,carrot
80.0,1200.0,1960.0,carrot
340.0,1330.0,2020.0,carrot
350.0,1350.0,1990.0,carrot
160.0,1450.0,1990.0,carrot
80.0,1360.0,2010.0,carrot
250.0,1290.0,1950.0,carrot
160.0,1300.0,2010.0,carrot
390.0,1290.0,2030.0,carrot
380.0,1350.0,2030.0,carrot
330.0,1200.0,2050.0,carrot
350.0,1250.0,2040.0,carrot
10.0,1320.0,2000.0,carrot
390.0,1400.0,2030.0,carrot
280.0,1450.0,2020.0,carrot
60.0,1280.0,2000.0,carrot
60.0,1390.0,1990.0,carrot
290.0,1220.0,1960.0,carrot
370.0,1440.0,1970.0,carrot
380.0,1200.0,1970.0,carrot
380.0,1410.0,1980.0,carrot
140.0,1210.0,2030.0,carrot
60.0,1250.0,2040.0,carrot
320.0,1380.0,1970.0,carrot
110.0,1240.0,2040.0,carrot
230.0,1380.0,2000.0,carrot
400.0,1430.0,2010.0,carrot
60.0,1420.0,2020.0,carrot
370.0,1240.0,1950.0,carrot
350.0,1340.0,2040.0,carrot
1190.0,250.0,510.0,watermelon
1190.0,190.0,550.0,watermelon
1050.0,300.0,500.0,watermelon
1140.0,80.0,500.0,watermelon
930.0,220.0,520.0,watermelon
800.0,260.0,550.0,watermelon
850.0,270.0,450.0,watermelon
850.0,220.0,530.0,watermelon
820.0,220.0,450.0,watermelon
1180.0,130.0,540.0,watermelon
830.0,250.0,530.0,watermelon
860.0,150.0,470.0,watermelon
1010.0,100.0,470.0,watermelon
1190.0,90.0,500.0,watermelon
1040.0,170.0,460.0,watermelon
950.0,120.0,510.0,watermelon
1020.0,140.0,520.0,watermelon
1090.0,210.0,550.0,watermelon
810.0,180.0,500.0,watermelon
1030.0,170.0,510.0,watermelon
1050.0,140.0,500.0,watermelon
970.0,80.0,520.0,watermelon
1200.0,190.0,490.0,watermelon
950.0,160.0,550.0,watermelon
830.0,290.0,520.0,watermelon
830.0,90.0,450.0,watermelon
910.0,210.0,500.0,watermelon
1160.0,50.0,540.0,watermelon
1120.0,280.0,540.0,watermelon
880.0,290.0,510.0,watermelon
1180.0,150.0,450.0,watermelon
920.0,210.0,480.0,watermelon
1060.0,140.0,450.0,watermelon
990.0,50.0,470.0,watermelon
980.0,80.0,510.0,watermelon
1080.0,220.0,460.0,watermelon
1190.0,70.0,550.0,watermelon
1170.0,270.0,480.0,watermelon
1090.0,100.0,530.0,watermelon
800.0,160.0,460.0,watermelon
1000.0,180.0,520.0,watermelon
910.0,70.0,530.0,watermelon
860.0,60.0,530.0,watermelon
1070.0,50.0,520.0,watermelon
1030.0,160.0,490.0,watermelon
1010.0,200.0,480.0,watermelon
850.0,250.0,470.0,watermelon
840.0,70.0,510.0,watermelon
1020.0,280.0,540.0,watermelon
980.0,250.0,520.0,watermelon
970.0,250.0,500.0,watermelon
900.0,160.0,450.0,watermelon
950.0,120.0,460.0,watermelon
820.0,230.0,490.0,watermelon
820.0,250.0,510.0,watermelon
1100.0,280.0,460.0,watermelon
1180.0,210.0,510.0,watermelon
1200.0,200.0,450.0,watermelon
910.0,70.0,520.0,watermelon
810.0,60.0,550.0,watermelon
1010.0,130.0,540.0,watermelon
1010.0,170.0,550.0,watermelon
1110.0,60.0,530.0,watermelon
1070.0,100.0,490.0,watermelon
1150.0,110.0,460.0,watermelon
840.0,250.0,520.0,watermelon
1200.0,70.0,470.0,watermelon
910.0,120.0,460.0,watermelon
890.0,220.0,520.0,watermelon
1130.0,190.0,460.0,watermelon
970.0,220.0,500.0,watermelon
1170.0,300.0,500.0,watermelon
900.0,140.0,520.0,watermelon
1040.0,230.0,470.0,watermelon
810.0,160.0,450.0,watermelon
880.0,50.0,470.0,watermelon
920.0,70.0,450.0,watermelon
810.0,180.0,500.0,watermelon
1110.0,50.0,550.0,watermelon
1080.0,230.0,510.0,watermelon
1130.0,300.0,500.0,watermelon
830.0,100.0,530.0,watermelon
1010.0,110.0,510.0,watermelon
1140.0,210.0,550.0,watermelon
990.0,60.0,450.0,watermelon
920.0,200.0,550.0,watermelon
920.0,70.0,480.0,watermelon
910.0,240.0,550.0,watermelon
1100.0,210.0,540.0,watermelon
1120.0,250.0,510.0,watermelon
890.0,250.0,540.0,watermelon
1000.0,100.0,530.0,watermelon
830.0,220.0,540.0,watermelon
950.0,140.0,500.0,watermelon
1190.0,300.0,490.0,watermelon
970.0,120.0,470.0,watermelon
1100.0,70.0,450.0,watermelon
960.0,180.0,500.0,watermelon
830.0,230.0,550.0,watermelon
1200.0,240.0,470.0,watermelon
1150.0,170.0,550.0,muskmelon
1140.0,270.0,480.0,muskmelon
1010.0,250.0,520.0,muskmelon
1180.0,180.0,520.0,muskmelon
950.0,260.0,450.0,muskmelon
810.0,250.0,490.0,muskmelon
1170.0,240.0,530.0,muskmelon
1140.0,300.0,510.0,muskmelon
1130.0,60.0,520.0,muskmelon
1080.0,260.0,520.0,muskmelon
810.0,300.0,480.0,muskmelon
1150.0,90.0,520.0,muskmelon
830.0,70.0,450.0,muskmelon
840.0,210.0,550.0,muskmelon
1090.0,260.0,450.0,muskmelon
950.0,270.0,550.0,muskmelon
1190.0,50.0,550.0,muskmelon
1100.0,140.0,510.0,muskmelon
820.0,180.0,480.0,muskmelon
870.0,140.0,480.0,muskmelon
850.0,90.0,530.0,muskmelon
1000.0,60.0,530.0,muskmelon
1070.0,120.0,460.0,muskmelon
910.0,130.0,470.0,muskmelon
1020.0,250.0,500.0,muskmelon
1170.0,250.0,530.0,muskmelon
850.0,210.0,520.0,muskmelon
1040.0,250.0,550.0,muskmelon
1020.0,240.0,540.0,muskmelon
1160.0,250.0,500.0,muskmelon
1000.0,170.0,480.0,muskmelon
1100.0,250.0,540.0,muskmelon
1040.0,250.0,510.0,muskmelon
1070.0,110.0,540.0,muskmelon
980.0,260.0,520.0,muskmelon
880.0,170.0,520.0,muskmelon
870.0,250.0,460.0,muskmelon
1200.0,80.0,460.0,muskmelon
950.0,130.0,460.0,muskmelon
1080.0,220.0,470.0,muskmelon
820.0,130.0,520.0,muskmelon
1200.0,230.0,550.0,muskmelon
1100.0,220.0,470.0,muskmelon
950.0,230.0,450.0,muskmelon
1060.0,100.0,490.0,muskmelon
990.0,120.0,520.0,muskmelon
1060.0,200.0,510.0,muskmelon
830.0,110.0,530.0,muskmelon
1170.0,190.0,550.0,muskmelon
980.0,260.0,490.0,muskmelon
1130.0,200.0,480.0,muskmelon
1010.0,170.0,470.0,muskmelon
980.0,70.0,450.0,muskmelon
930.0,220.0,480.0,muskmelon
950.0,210.0,470.0,muskmelon
1090.0,120.0,480.0,muskmelon
1180.0,120.0,470.0,muskmelon
1000.0,140.0,490.0,muskmelon
890.0,90.0,470.0,muskmelon
950.0,160.0,460.0,muskmelon
950.0,70.0,450.0,muskmelon
870.0,60.0,450.0,muskmelon
930.0,200.0,500.0,muskmelon
840.0,290.0,490.0,muskmelon
1110.0,50.0,470.0,muskmelon
1110.0,50.0,520.0,muskmelon
1110.0,150.0,540.0,muskmelon
890.0,110.0,470.0,muskmelon
1100.0,150.0,480.0,muskmelon
950.0,300.0,520.0,muskmelon
1150.0,120.0,520.0,muskmelon
1200.0,250.0,500.0,muskmelon
1020.0,110.0,450.0,muskmelon
940.0,50.0,550.0,muskmelon
840.0,180.0,460.0,muskmelon
1070.0,220.0,540.0,muskmelon
800.0,180.0,520.0,muskmelon
860.0,180.0,450.0,muskmelon
1130.0,280.0,480.0,muskmelon
1150.0,180.0,530.0,muskmelon
820.0,200.0,540.0,muskmelon
980.0,220.0,470.0,muskmelon
1170.0,250.0,540.0,muskmelon
830.0,150.0,490.0,muskmelon
1200.0,160.0,510.0,muskmelon
1110.0,50.0,500.0,muskmelon
850.0,210.0,470.0,muskmelon
900.0,230.0,540.0,muskmelon
990.0,290.0,550.0,muskmelon
1020.0,110.0,470.0,muskmelon
800.0,180.0,510.0,muskmelon
870.0,210.0,520.0,muskmelon
1140.0,80.0,520.0,muskmelon
990.0,60.0,460.0,muskmelon
890.0,250.0,500.0,muskmelon
960.0,130.0,550.0,muskmelon
820.0,260.0,470.0,muskmelon
1060.0,210.0,520.0,muskmelon
900.0,150.0,520.0,muskmelon
1060.0,160.0,540.0,muskmelon
240.0,1280.0,1960.0,rice
70.0,1440.0,1970.0,rice
140.0,1280.0,2050.0,rice
80.0,1200.0,2010.0,rice
200.0,1290.0,2010.0,rice
320.0,1370.0,2040.0,rice
270.0,1390.0,2050.0,rice
0.0,1230.0,2050.0,rice
220.0,1440.0,1960.0,rice
10.0,1240.0,1990.0,rice
300.0,1220.0,1970.0,rice
290.0,1210.0,1960.0,rice
130.0,1260.0,2040.0,rice
90.0,1390.0,1990.0,rice
0.0,1330.0,2000.0,rice
300.0,1430.0,1990.0,rice
360.0,1400.0,1980.0,rice
370.0,1370.0,1990.0,rice
330.0,1210.0,2030.0,rice
70.0,1440.0,1950.0,rice
350.0,1280.0,2050.0,rice
290.0,1280.0,1980.0,rice
20.0,1430.0,1960.0,rice
340.0,1400.0,1980.0,rice
290.0,1440.0,2040.0,rice
320.0,1410.0,2030.0,rice
130.0,1440.0,1970.0,rice
250.0,1430.0,1980.0,rice
90.0,1370.0,2000.0,rice
60.0,1440.0,1980.0,rice
370.0,1260.0,1960.0,rice
20.0,1200.0,2030.0,rice
110.0,1430.0,1970.0,rice
100.0,1410.0,2010.0,rice
240.0,1420.0,2020.0,rice
230.0,1380.0,1950.0,rice
180.0,1250.0,2040.0,rice
130.0,1210.0,1960.0,rice
260.0,1220.0,2020.0,rice
280.0,1230.0,2020.0,rice
260.0,1210.0,2010.0,rice
210.0,1370.0,1960.0,rice
210.0,1350.0,1980.0,rice
50.0,1440.0,2050.0,rice
20.0,1230.0,2050.0,rice
150.0,1330.0,1990.0,rice
310.0,1300.0,1980.0,rice
250.0,1430.0,2000.0,rice
160.0,1430.0,2040.0,rice
190.0,1220.0,2020.0,rice
100.0,1250.0,1960.0,rice
200.0,1390.0,2020.0,rice
280.0,1230.0,1980.0,rice
280.0,1360.0,2000.0,rice
20.0,1310.0,1990.0,rice
20.0,1400.0,1970.0,rice
270.0,1380.0,2010.0,rice
300.0,1270.0,2040.0,rice
320.0,1450.0,2030.0,rice
290.0,1390.0,2050.0,rice
260.0,1260.0,1950.0,rice
400.0,1360.0,2020.0,rice
60.0,1240.0,2000.0,rice
350.0,1380.0,2000.0,rice
170.0,1360.0,1960.0,rice
330.0,1340.0,2050.0,rice
160.0,1430.0,1970.0,rice
270.0,1200.0,2000.0,rice
290.0,1450.0,2050.0,rice
30.0,1410.0,1970.0,rice
150.0,1230.0,2040.0,rice
50.0,1360.0,1950.0,rice
100.0,1360.0,2040.0,rice
70.0,1410.0,1950.0,rice
20.0,1290.0,2010.0,rice
290.0,1380.0,1970.0,rice
300.0,1370.0,2000.0,rice
290.0,1320.0,2040.0,rice
140.0,1390.0,1970.0,rice
180.0,1250.0,2030.0,rice
330.0,1430.0,2040.0,rice
400.0,1440.0,1960.0,rice
90.0,1430.0,1970.0,rice
380.0,1350.0,2030.0,rice
280.0,1300.0,1960.0,rice
350.0,1420.0,2030.0,rice
120.0,1290.0,2050.0,rice
10.0,1350.0,2030.0,rice
0.0,1450.0,2050.0,rice
310.0,1210.0,2010.0,rice
350.0,1310.0,2030.0,rice
290.0,1400.0,1950.0,rice
330.0,1380.0,1980.0,rice
140.0,1400.0,1970.0,rice
350.0,1450.0,1950.0,rice
400.0,1200.0,1970.0,rice
250.0,1320.0,1980.0,rice
310.0,1370.0,1960.0,rice
360.0,1440.0,1960.0,rice
100.0,1400.0,1970.0,rice
220.0,300.0,120.0,orange
370.0,60.0,130.0,orange
270.0,130.0,60.0,orange
70.0,160.0,90.0,orange
200.0,70.0,90.0,orange
260.0,270.0,100.0,orange
50.0,230.0,150.0,orange
0.0,180.0,140.0,orange
390.0,240.0,140.0,orange
130.0,230.0,60.0,orange
210.0,170.0,150.0,orange
330.0,120.0,80.0,orange
60.0,90.0,120.0,orange
190.0,70.0,100.0,orange
240.0,180.0,60.0,orange
90.0,110.0,80.0,orange
310.0,80.0,70.0,orange
220.0,170.0,50.0,orange
130.0,50.0,80.0,orange
160.0,80.0,90.0,orange
40.0,130.0,60.0,orange
0.0,250.0,140.0,orange
80.0,70.0,100.0,orange
40.0,230.0,50.0,orange
330.0,140.0,80.0,orange
300.0,70.0,150.0,orange
210.0,290.0,120.0,orange
110.0,140.0,50.0,orange
90.0,80.0,150.0,orange
50.0,180.0,140.0,orange
290.0,250.0,140.0,orange
330.0,120.0,150.0,orange
80.0,160.0,60.0,orange
150.0,140.0,80.0,orange
160.0,70.0,80.0,orange
0.0,120.0,70.0,orange
50.0,250.0,60.0,orange
60.0,80.0,110.0,orange
100.0,50.0,50.0,orange
10.0,170.0,60.0,orange
10.0,300.0,100.0,orange
0.0,230.0,150.0,orange
240.0,270.0,90.0,orange
360.0,110.0,130.0,orange
400.0,210.0,80.0,orange
400.0,220.0,60.0,orange
320.0,180.0,130.0,orange
90.0,100.0,100.0,orange
130.0,160.0,80.0,orange
150.0,90.0,110.0,orange
290.0,110.0,50.0,orange
10.0,150.0,90.0,orange
180.0,50.0,110.0,orange
140.0,220.0,90.0,orange
330.0,150.0,70.0,orange
40.0,60.0,70.0,orange
170.0,160.0,140.0,orange
120.0,200.0,100.0,orange
340.0,290.0,80.0,orange
390.0,280.0,100.0,orange
310.0,250.0,120.0,orange
120.0,60.0,80.0,orange
120.0,290.0,130.0,orange
260.0,110.0,110.0,orange
190.0,240.0,150.0,orange
390.0,210.0,90.0,orange
160.0,290.0,130.0,orange
360.0,290.0,130.0,orange
370.0,230.0,120.0,orange
390.0,90.0,150.0,orange
310.0,50.0,140.0,orange
180.0,120.0,80.0,orange
200.0,200.0,100.0,orange
50.0,80.0,50.0,orange
200.0,80.0,120.0,orange
250.0,210.0,110.0,orange
140.0,190.0,140.0,orange
370.0,180.0,120.0,orange
260.0,150.0,60.0,orange
130.0,220.0,50.0,orange
320.0,250.0,90.0,orange
190.0,70.0,90.0,orange
280.0,70.0,90.0,orange
240.0,300.0,110.0,orange
70.0,170.0,100.0,orange
180.0,230.0,80.0,orange
70.0,200.0,120.0,orange
200.0,230.0,110.0,orange
180.0,140.0,110.0,orange
340.0,110.0,100.0,orange
200.0,290.0,100.0,orange
370.0,240.0,130.0,orange
120.0,80.0,100.0,orange
340.0,100.0,140.0,orange
60.0,130.0,90.0,orange
270.0,300.0,50.0,orange
130.0,80.0,120.0,orange
60.0,70.0,70.0,orange
400.0,170.0,150.0,orange
310.0,260.0,90.0,orange
610.0,680.0,500.0,papaya
580.0,460.0,450.0,papaya
450.0,470.0,550.0,papaya
390.0,650.0,530.0,papaya
310.0,680.0,450.0,papaya
700.0,680.0,450.0,papaya
680.0,620.0,500.0,papaya
340.0,650.0,470.0,papaya
380.0,680.0,540.0,papaya
690.0,640.0,470.0,papaya
580.0,510.0,470.0,papaya
590.0,470.0,530.0,papaya
440.0,640.0,540.0,papaya
560.0,570.0,480.0,papaya
690.0,600.0,540.0,papaya
560.0,580.0,490.0,papaya
490.0,550.0,530.0,papaya
380.0,510.0,520.0,papaya
540.0,650.0,470.0,papaya
570.0,570.0,510.0,papaya
390.0,520.0,530.0,papaya
580.0,670.0,450.0,papaya
610.0,640.0,520.0,papaya
340.0,620.0,550.0,papaya
310.0,480.0,450.0,papaya
470.0,460.0,520.0,papaya
320.0,680.0,520.0,papaya
360.0,590.0,460.0,papaya
610.0,510.0,510.0,papaya
700.0,540.0,460.0,papaya
440.0,560.0,490.0,papaya
340.0,680.0,510.0,papaya
500.0,590.0,470.0,papaya
390.0,700.0,520.0,papaya
340.0,610.0,490.0,papaya
440.0,600.0,550.0,papaya
310.0,620.0,520.0,papaya
650.0,620.0,510.0,papaya
440.0,570.0,530.0,papaya
500.0,470.0,480.0,papaya
430.0,500.0,480.0,papaya
600.0,460.0,530.0,papaya
700.0,680.0,550.0,papaya
590.0,620.0,520.0,papaya
600.0,580.0,510.0,papaya
420.0,600.0,470.0,papaya
350.0,660.0,470.0,papaya
340.0,650.0,480.0,papaya
360.0,540.0,460.0,papaya
390.0,640.0,520.0,papaya
370.0,520.0,470.0,papaya
330.0,470.0,460.0,papaya
340.0,480.0,480.0,papaya
490.0,540.0,500.0,papaya
400.0,650.0,490.0,papaya
680.0,520.0,490.0,papaya
500.0,460.0,520.0,papaya
650.0,630.0,500.0,papaya
400.0,490.0,470.0,papaya
420.0,530.0,480.0,papaya
490.0,550.0,510.0,papaya
590.0,620.0,490.0,papaya
630.0,580.0,470.0,papaya
700.0,650.0,520.0,papaya
630.0,500.0,520.0,papaya
400.0,640.0,470.0,papaya
630.0,580.0,500.0,papaya
450.0,580.0,490.0,papaya
660.0,690.0,470.0,papaya
540.0,670.0,520.0,papaya
690.0,670.0,520.0,papaya
670.0,680.0,490.0,papaya
450.0,570.0,470.0,papaya
560.0,500.0,520.0,papaya
700.0,500.0,530.0,papaya
440.0,470.0,450.0,papaya
500.0,600.0,470.0,papaya
520.0,510.0,530.0,papaya
350.0,680.0,450.0,papaya
680.0,690.0,520.0,papaya
320.0,550.0,520.0,papaya
320.0,550.0,510.0,papaya
480.0,620.0,470.0,papaya
390.0,690.0,530.0,papaya
490.0,610.0,450.0,papaya
480.0,570.0,540.0,papaya
690.0,660.0,490.0,papaya
530.0,550.0,550.0,papaya
380.0,610.0,520.0,papaya
570.0,640.0,550.0,papaya
510.0,570.0,550.0,papaya
560.0,650.0,450.0,papaya
540.0,660.0,520.0,papaya
580.0,550.0,470.0,papaya
680.0,700.0,540.0,papaya
420.0,590.0,550.0,papaya
430.0,640.0,470.0,papaya
350.0,670.0,490.0,papaya
560.0,590.0,550.0,papaya
390.0,640.0,530.0,papaya
180.0,300.0,290.0,coconut
370.0,230.0,280.0,coconut
130.0,280.0,330.0,coconut
20.0,210.0,350.0,coconut
100.0,180.0,350.0,coconut
70.0,110.0,320.0,coconut
390.0,50.0,310.0,coconut
340.0,60.0,270.0,coconut
310.0,300.0,290.0,coconut
250.0,70.0,350.0,coconut
160.0,180.0,260.0,coconut
260.0,100.0,330.0,coconut
270.0,80.0,320.0,coconut
370.0,180.0,300.0,coconut
190.0,150.0,340.0,coconut
0.0,190.0,330.0,coconut
310.0,200.0,260.0,coconut
90.0,170.0,320.0,coconut
220.0,110.0,290.0,coconut
310.0,60.0,260.0,coconut
340.0,60.0,300.0,coconut
240.0,60.0,320.0,coconut
10.0,80.0,260.0,coconut
310.0,130.0,330.0,coconut
100.0,90.0,280.0,coconut
360.0,270.0,260.0,coconut
380.0,240.0,330.0,coconut
110.0,60.0,250.0,coconut
160.0,140.0,300.0,coconut
330.0,140.0,350.0,coconut
160.0,60.0,290.0,coconut
320.0,110.0,310.0,coconut
380.0,140.0,300.0,coconut
80.0,60.0,330.0,coconut
230.0,60.0,330.0,coconut
290.0,250.0,350.0,coconut
240.0,140.0,330.0,coconut
320.0,120.0,300.0,coconut
300.0,250.0,310.0,coconut
140.0,210.0,350.0,coconut
270.0,220.0,290.0,coconut
400.0,50.0,290.0,coconut
170.0,110.0,320.0,coconut
300.0,300.0,350.0,coconut
280.0,100.0,300.0,coconut
390.0,70.0,290.0,coconut
320.0,200.0,350.0,coconut
70.0,150.0,320.0,coconut
290.0,170.0,290.0,coconut
340.0,150.0,340.0,coconut
140.0,230.0,250.0,coconut
180.0,190.0,290.0,coconut
70.0,210.0,350.0,coconut
240.0,270.0,340.0,coconut
390.0,290.0,290.0,coconut
290.0,80.0,280.0,coconut
100.0,240.0,270.0,coconut
0.0,290.0,320.0,coconut
320.0,110.0,310.0,coconut
370.0,100.0,320.0,coconut
200.0,290.0,270.0,coconut
310.0,290.0,350.0,coconut
170.0,300.0,270.0,coconut
10.0,120.0,300.0,coconut
60.0,130.0,290.0,coconut
150.0,280.0,320.0,coconut
270.0,240.0,290.0,coconut
30.0,230.0,300.0,coconut
80.0,260.0,260.0,coconut
200.0,280.0,260.0,coconut
260.0,180.0,270.0,coconut
10.0,60.0,350.0,coconut
270.0,300.0,310.0,coconut
230.0,70.0,340.0,coconut
0.0,260.0,310.0,coconut
380.0,60.0,250.0,coconut
250.0,120.0,260.0,coconut
400.0,50.0,320.0,coconut
0.0,190.0,310.0,coconut
260.0,90.0,320.0,coconut
350.0,300.0,340.0,coconut
190.0,300.0,300.0,coconut
310.0,130.0,330.0,coconut
170.0,290.0,260.0,coconut
20.0,300.0,300.0,coconut
300.0,130.0,250.0,coconut
80.0,150.0,330.0,coconut
180.0,120.0,350.0,coconut
80.0,280.0,300.0,coconut
400.0,220.0,290.0,coconut
270.0,100.0,330.0,coconut
210.0,200.0,310.0,coconut
30.0,90.0,350.0,coconut
220.0,160.0,270.0,coconut
270.0,80.0,300.0,coconut
220.0,80.0,330.0,coconut
280.0,270.0,320.0,coconut
230.0,210.0,260.0,coconut
370.0,50.0,340.0,coconut
190.0,260.0,290.0,coconut
1330.0,470.0,240.0,cotton
1360.0,360.0,200.0,cotton
1040.0,470.0,180.0,cotton
1330.0,470.0,230.0,cotton
1260.0,380.0,230.0,cotton
1260.0,500.0,190.0,cotton
1130.0,410.0,200.0,cotton
1210.0,450.0,220.0,cotton
1210.0,470.0,160.0,cotton
1290.0,600.0,220.0,cotton
1070.0,450.0,250.0,cotton
1220.0,590.0,180.0,cotton
1400.0,380.0,150.0,cotton
1020.0,490.0,210.0,cotton
1110.0,400.0,250.0,cotton
1310.0,350.0,180.0,cotton
1350.0,430.0,160.0,cotton
1000.0,460.0,180.0,cotton
1230.0,390.0,240.0,cotton
1170.0,560.0,150.0,cotton
1210.0,360.0,240.0,cotton
1010.0,580.0,180.0,cotton
1070.0,420.0,240.0,cotton
1000.0,410.0,220.0,cotton
1250.0,390.0,210.0,cotton
1050.0,600.0,230.0,cotton
1020.0,460.0,190.0,cotton
1310.0,490.0,220.0,cotton
1390.0,350.0,150.0,cotton
1080.0,360.0,190.0,cotton
1180.0,450.0,230.0,cotton
1070.0,510.0,220.0,cotton
1250.0,600.0,170.0,cotton
1130.0,370.0,200.0,cotton
1310.0,520.0,160.0,cotton
1150.0,480.0,160.0,cotton
1130.0,380.0,250.0,cotton
1110.0,410.0,180.0,cotton
1110.0,530.0,190.0,cotton
1220.0,480.0,160.0,cotton
1080.0,460.0,170.0,cotton
1320.0,410.0,220.0,cotton
1030.0,420.0,170.0,cotton
1330.0,500.0,250.0,cotton
1270.0,370.0,180.0,cotton
1100.0,390.0,250.0,cotton
1310.0,380.0,190.0,cotton
1080.0,380.0,240.0,cotton
1220.0,400.0,170.0,cotton
1110.0,500.0,150.0,cotton
1400.0,400.0,170.0,cotton
1000.0,400.0,200.0,cotton
1230.0,500.0,160.0,cotton
1070.0,360.0,210.0,cotton
1180.0,500.0,190.0,cotton
1030.0,510.0,200.0,cotton
1330.0,570.0,190.0,cotton
1290.0,470.0,200.0,cotton
1160.0,520.0,190.0,cotton
1140.0,400.0,230.0,cotton
1310.0,600.0,170.0,cotton
1070.0,430.0,180.0,cotton
1230.0,440.0,210.0,cotton
1120.0,490.0,250.0,cotton
1190.0,440.0,150.0,cotton
1300.0,590.0,190.0,cotton
1270.0,530.0,240.0,cotton
1340.0,520.0,180.0,cotton
1090.0,360.0,180.0,cotton
1000.0,480.0,170.0,cotton
1320.0,520.0,190.0,cotton
1020.0,370.0,250.0,cotton
1110.0,390.0,220.0,cotton
1170.0,510.0,150.0,cotton
1360.0,360.0,240.0,cotton
1340.0,560.0,180.0,cotton
1120.0,540.0,150.0,cotton
1050.0,560.0,150.0,cotton
1400.0,450.0,150.0,cotton
1260.0,460.0,250.0,cotton
1060.0,490.0,240.0,cotton
1210.0,530.0,190.0,cotton
1080.0,600.0,170.0,cotton
1160.0,560.0,170.0,cotton
1000.0,520.0,190.0,cotton
1290.0,430.0,160.0,cotton
1180.0,440.0,230.0,cotton
1170.0,430.0,250.0,cotton
1260.0,370.0,210.0,cotton
1200.0,480.0,160.0,cotton
1020.0,450.0,160.0,cotton
1310.0,560.0,200.0,cotton
1140.0,400.0,170.0,cotton
1010.0,370.0,180.0,cotton
1060.0,460.0,200.0,cotton
1130.0,380.0,200.0,cotton
1020.0,530.0,210.0,cotton
1100.0,390.0,180.0,cotton
1070.0,580.0,150.0,cotton
1200.0,600.0,150.0,cotton
890.0,470.0,380.0,jute
600.0,370.0,390.0,jute
630.0,410.0,450.0,jute
860.0,400.0,390.0,jute
960.0,410.0,400.0,jute
1000.0,350.0,360.0,jute
630.0,370.0,430.0,jute
700.0,430.0,400.0,jute
670.0,550.0,440.0,jute
740.0,400.0,400.0,jute
890.0,530.0,440.0,jute
740.0,460.0,450.0,jute
890.0,410.0,380.0,jute
600.0,550.0,400.0,jute
670.0,430.0,380.0,jute
700.0,380.0,350.0,jute
740.0,490.0,380.0,jute
900.0,400.0,390.0,jute
820.0,350.0,440.0,jute
730.0,450.0,370.0,jute
850.0,530.0,380.0,jute
810.0,560.0,360.0,jute
840.0,550.0,380.0,jute
800.0,450.0,420.0,jute
760.0,540.0,450.0,jute
760.0,560.0,390.0,jute
810.0,400.0,450.0,jute
760.0,440.0,450.0,jute
690.0,470.0,400.0,jute
820.0,400.0,450.0,jute
690.0,570.0,350.0,jute
810.0,360.0,380.0,jute
670.0,600.0,380.0,jute
720.0,510.0,400.0,jute
650.0,390.0,450.0,jute
780.0,500.0,430.0,jute
770.0,520.0,410.0,jute
890.0,520.0,420.0,jute
620.0,490.0,370.0,jute
900.0,480.0,450.0,jute
660.0,470.0,360.0,jute
800.0,520.0,390.0,jute
890.0,520.0,450.0,jute
770.0,510.0,440.0,jute
940.0,370.0,410.0,jute
750.0,410.0,350.0,jute
600.0,550.0,360.0,jute
620.0,560.0,350.0,jute
840.0,400.0,420.0,jute
1000.0,560.0,400.0,jute
750.0,560.0,440.0,jute
780.0,460.0,420.0,jute
820.0,480.0,360.0,jute
1000.0,580.0,410.0,jute
880.0,500.0,400.0,jute
670.0,410.0,400.0,jute
720.0,420.0,430.0,jute
890.0,400.0,430.0,jute
890.0,570.0,430.0,jute
610.0,410.0,440.0,jute
790.0,450.0,430.0,jute
840.0,400.0,430.0,jute
980.0,430.0,350.0,jute
750.0,360.0,440.0,jute
890.0,580.0,350.0,jute
910.0,410.0,370.0,jute
770.0,480.0,360.0,jute
660.0,580.0,350.0,jute
620.0,590.0,410.0,jute
820.0,350.0,350.0,jute
610.0,410.0,350.0,jute
990.0,570.0,380.0,jute
700.0,420.0,430.0,jute
900.0,590.0,350.0,jute
730.0,430.0,420.0,jute
670.0,460.0,440.0,jute
840.0,370.0,420.0,jute
720.0,410.0,360.0,jute
710.0,560.0,370.0,jute
640.0,530.0,380.0,jute
650.0,540.0,390.0,jute
600.0,580.0,370.0,jute
860.0,390.0,430.0,jute
900.0,500.0,440.0,jute
910.0,380.0,360.0,jute
870.0,480.0,380.0,jute
720.0,410.0,360.0,jute
710.0,540.0,350.0,jute
820.0,460.0,410.0,jute
710.0,520.0,430.0,jute
800.0,430.0,430.0,jute
770.0,550.0,430.0,jute
950.0,570.0,410.0,jute
630.0,470.0,350.0,jute
930.0,430.0,380.0,jute
870.0,440.0,430.0,jute
880.0,520.0,390.0,jute
900.0,390.0,370.0,jute
900.0,390.0,430.0,jute
840.0,380.0,430.0,jute
910.0,210.0,260.0,potato
1070.0,210.0,260.0,potato
830.0,380.0,350.0,potato
1080.0,240.0,310.0,potato
1160.0,280.0,340.0,potato
1160.0,230.0,250.0,potato
1090.0,310.0,270.0,potato
890.0,250.0,340.0,potato
1180.0,180.0,320.0,potato
1110.0,320.0,340.0,potato
840.0,360.0,280.0,potato
850.0,330.0,250.0,potato
990.0,150.0,270.0,potato
810.0,300.0,310.0,potato
950.0,390.0,290.0,potato
810.0,340.0,300.0,potato
800.0,150.0,280.0,potato
1040.0,200.0,260.0,potato
1090.0,290.0,280.0,potato
1000.0,320.0,260.0,potato
1000.0,240.0,280.0,potato
830.0,210.0,280.0,potato
1200.0,230.0,280.0,potato
1040.0,260.0,300.0,potato
1080.0,330.0,310.0,potato
910.0,250.0,260.0,potato
860.0,260.0,270.0,potato
980.0,180.0,270.0,potato
1110.0,270.0,310.0,potato
840.0,390.0,350.0,potato
980.0,270.0,270.0,potato
1180.0,210.0,340.0,potato
1030.0,270.0,310.0,potato
820.0,240.0,330.0,potato
860.0,310.0,350.0,potato
880.0,350.0,350.0,potato
840.0,270.0,290.0,potato
1200.0,400.0,330.0,potato
1060.0,400.0,300.0,potato
1130.0,210.0,330.0,potato
1170.0,340.0,250.0,potato
800.0,300.0,250.0,potato
880.0,210.0,270.0,potato
1130.0,330.0,340.0,potato
870.0,230.0,280.0,potato
1130.0,150.0,290.0,potato
980.0,290.0,300.0,potato
970.0,290.0,270.0,potato
850.0,350.0,320.0,potato
820.0,290.0,350.0,potato
1030.0,330.0,250.0,potato
1120.0,170.0,280.0,potato
990.0,190.0,330.0,potato
1200.0,200.0,340.0,potato
1140.0,270.0,280.0,potato
1000.0,400.0,350.0,potato
1080.0,350.0,250.0,potato
1150.0,310.0,300.0,potato
870.0,280.0,300.0,potato
820.0,240.0,260.0,potato
940.0,260.0,270.0,potato
870.0,280.0,350.0,potato
1180.0,400.0,350.0,potato
870.0,380.0,290.0,potato
920.0,400.0,300.0,potato
970.0,220.0,260.0,potato
990.0,400.0,320.0,potato
890.0,280.0,330.0,potato
1120.0,390.0,290.0,potato
1110.0,280.0,260.0,potato
1140.0,200.0,260.0,potato
1170.0,260.0,300.0,potato
1110.0,290.0,310.0,potato
1190.0,300.0,280.0,potato
1160.0,400.0,330.0,potato
950.0,370.0,350.0,potato
860.0,400.0,330.0,potato
1170.0,370.0,320.0,potato
1050.0,180.0,350.0,potato
1090.0,230.0,250.0,potato
800.0,180.0,310.0,potato
1010.0,310.0,260.0,potato
1030.0,330.0,330.0,potato
930.0,260.0,270.0,potato
1040.0,350.0,280.0,potato
1160.0,360.0,250.0,potato
1070.0,380.0,290.0,potato
1010.0,330.0,330.0,potato
1070.0,310.0,310.0,potato
990.0,160.0,300.0,potato
1030.0,400.0,300.0,potato
1180.0,310.0,340.0,potato
1060.0,210.0,350.0,potato
1160.0,380.0,340.0,potato
970.0,350.0,260.0,potato
1070.0,340.0,320.0,potato
990.0,150.0,270.0,potato
1180.0,330.0,300.0,potato
1170.0,320.0,340.0,potato
1040.0,180.0,300.0,potato
...@@ -62,3 +62,9 @@ Tomato,0.3,0.5,0.2 ...@@ -62,3 +62,9 @@ Tomato,0.3,0.5,0.2
Wheat,4.47,0.29,5.24 Wheat,4.47,0.29,5.24
Cotton,4.47,0.29,5.24 Cotton,4.47,0.29,5.24
Tomato,4.47,0.29,5.24 Tomato,4.47,0.29,5.24
Tomato,30,50,20
Wheat,30,50,20
Cotton,30,50,20
Tomato,40,30,30
Wheat,40,30,30
Cotton,40,30,30
nitrogen,phosphorus,potassium,crop
9.0,4.2,4.3,rice
8.5,5.8,4.1,rice
6.0,5.5,4.4,rice
7.4,3.5,4.0,rice
7.8,4.2,4.2,rice
6.9,3.7,4.2,rice
6.9,5.5,3.8,rice
9.4,5.3,4.0,rice
8.9,5.4,3.8,rice
6.8,5.8,3.8,rice
9.1,5.3,4.0,rice
9.0,4.6,4.2,rice
7.8,5.8,4.4,rice
9.3,5.6,3.6,rice
9.4,5.0,3.7,rice
6.0,4.8,3.9,rice
8.5,3.8,4.1,rice
9.1,3.5,3.9,rice
7.7,3.8,3.6,rice
8.8,3.5,4.0,rice
8.9,4.5,3.6,rice
7.6,4.0,4.3,rice
6.7,5.9,4.1,rice
8.3,4.1,4.3,rice
9.8,4.7,3.7,rice
6.6,5.3,4.1,rice
9.7,5.9,4.3,rice
9.7,5.0,4.1,rice
6.0,4.9,4.4,rice
8.4,5.1,3.5,rice
7.3,5.7,4.1,rice
9.2,3.5,4.0,rice
8.5,3.7,3.9,rice
9.8,5.3,3.8,rice
8.8,5.4,4.4,rice
9.5,5.5,4.2,rice
9.9,5.7,3.5,rice
9.5,3.9,3.6,rice
6.0,4.3,4.4,rice
6.3,4.4,4.1,rice
6.2,4.2,3.6,rice
6.4,4.5,4.3,rice
8.3,6.0,3.6,rice
8.2,4.0,4.0,rice
8.5,5.2,4.5,rice
9.1,3.5,3.8,rice
7.6,4.9,4.2,rice
7.4,3.9,3.8,rice
7.9,4.3,3.9,rice
8.8,5.5,4.5,rice
6.0,3.6,4.3,rice
7.6,6.0,3.9,rice
9.3,5.6,4.2,rice
6.5,6.0,4.3,rice
9.5,5.2,3.6,rice
7.5,3.8,3.9,rice
7.4,5.4,3.8,rice
9.1,3.6,4.5,rice
7.1,4.6,4.0,rice
9.9,5.5,3.5,rice
7.2,4.0,3.8,rice
8.3,5.8,4.5,rice
9.3,5.8,3.8,rice
7.0,3.6,4.2,rice
7.6,4.7,4.2,rice
9.9,4.1,3.6,rice
9.9,5.4,3.7,rice
8.6,5.9,3.5,rice
6.9,4.6,4.1,rice
9.1,5.6,3.7,rice
6.1,5.2,4.1,rice
6.7,4.5,3.8,rice
7.9,4.2,3.7,rice
7.8,4.3,4.2,rice
7.5,5.4,3.6,rice
9.7,3.6,4.5,rice
6.7,4.7,4.4,rice
7.3,3.5,3.8,rice
7.7,3.6,3.7,rice
8.1,4.1,3.8,rice
6.8,5.7,4.3,rice
7.2,4.5,3.5,rice
6.1,5.3,4.3,rice
6.7,4.3,3.9,rice
6.7,5.8,3.9,rice
6.6,6.0,3.8,rice
8.2,4.3,3.8,rice
8.4,5.0,4.4,rice
8.1,5.3,4.2,rice
9.1,5.0,4.0,rice
9.3,5.3,3.8,rice
9.0,4.4,3.8,rice
8.1,4.5,3.5,rice
7.8,4.0,3.8,rice
6.0,5.1,3.6,rice
8.8,4.6,4.2,rice
9.3,4.7,3.7,rice
6.0,5.5,4.5,rice
7.8,3.5,4.4,rice
6.5,3.7,4.0,rice
7.1,5.4,1.6,maize
6.1,4.4,1.7,maize
8.0,4.3,1.6,maize
7.3,5.8,2.1,maize
6.1,3.8,2.0,maize
6.8,4.1,1.6,maize
9.3,4.1,1.7,maize
8.9,6.0,1.9,maize
7.6,4.4,1.7,maize
6.7,6.0,2.5,maize
7.0,4.4,1.9,maize
9.0,4.9,2.1,maize
6.2,5.2,1.6,maize
9.2,4.4,1.6,maize
6.6,5.4,2.1,maize
6.3,5.8,2.2,maize
7.0,4.7,1.7,maize
6.1,4.1,1.7,maize
6.6,5.3,1.9,maize
7.4,5.5,1.9,maize
7.7,5.7,2.1,maize
9.9,5.0,1.5,maize
7.4,5.6,2.2,maize
8.3,4.5,2.1,maize
10.0,4.8,1.6,maize
7.9,5.1,1.6,maize
9.4,3.9,1.8,maize
7.5,4.9,1.5,maize
7.8,4.8,2.2,maize
8.7,5.4,2.0,maize
8.7,3.5,2.5,maize
6.3,4.3,1.9,maize
8.4,5.7,2.5,maize
6.4,3.5,2.3,maize
6.0,4.6,2.2,maize
9.8,4.4,2.1,maize
7.5,5.6,1.8,maize
8.6,5.5,2.1,maize
9.8,3.5,1.8,maize
7.6,5.7,1.8,maize
9.9,5.6,1.7,maize
6.0,4.4,2.3,maize
7.4,4.8,1.7,maize
8.9,6.0,1.7,maize
6.9,5.1,2.3,maize
9.6,4.6,2.2,maize
6.1,6.0,1.5,maize
7.4,5.8,1.8,maize
7.4,4.3,2.3,maize
6.3,4.3,1.7,maize
9.9,3.6,2.0,maize
7.7,3.6,2.3,maize
8.7,6.0,2.3,maize
6.0,3.8,1.7,maize
9.4,5.4,1.7,maize
9.5,3.8,2.2,maize
8.4,4.4,2.1,maize
7.7,5.8,1.9,maize
6.6,4.4,2.0,maize
6.3,3.5,1.6,maize
7.9,4.5,2.0,maize
7.2,6.0,2.5,maize
6.7,5.1,2.4,maize
8.6,3.6,2.4,maize
7.6,4.8,1.8,maize
7.5,5.3,1.8,maize
8.1,4.5,2.3,maize
7.3,4.5,2.1,maize
7.1,3.5,2.4,maize
9.6,5.4,2.2,maize
9.9,3.9,1.8,maize
6.2,4.8,2.0,maize
8.6,3.7,1.6,maize
9.4,5.0,1.9,maize
7.6,3.9,2.4,maize
7.7,5.2,1.7,maize
7.4,3.9,2.3,maize
8.1,4.9,2.0,maize
6.3,4.2,2.1,maize
9.9,3.8,2.1,maize
9.0,5.2,2.5,maize
6.8,4.0,1.9,maize
6.0,5.7,2.4,maize
7.1,5.2,1.8,maize
6.1,5.9,1.7,maize
8.8,3.8,1.5,maize
6.5,6.0,2.2,maize
7.8,3.7,2.2,maize
7.8,5.8,1.5,maize
9.2,6.0,2.3,maize
7.9,5.9,1.7,maize
9.1,5.5,1.5,maize
7.6,5.1,1.8,maize
8.7,4.8,2.5,maize
7.1,6.0,2.2,maize
9.0,5.7,2.4,maize
6.7,3.5,2.2,maize
6.0,5.4,1.9,maize
8.3,5.8,2.3,maize
8.3,5.7,1.9,maize
4.0,7.2,7.7,chickpea
2.3,7.2,8.4,chickpea
3.9,5.8,8.5,chickpea
2.2,7.2,8.5,chickpea
3.6,6.7,7.7,chickpea
3.2,7.3,8.1,chickpea
5.8,7.0,8.4,chickpea
5.9,7.0,8.4,chickpea
4.2,6.2,7.5,chickpea
2.8,7.4,8.1,chickpea
5.8,6.6,7.9,chickpea
4.3,6.6,7.9,chickpea
5.8,6.3,8.1,chickpea
2.3,6.2,8.5,chickpea
2.7,6.2,7.7,chickpea
2.8,7.2,8.4,chickpea
5.0,5.6,7.6,chickpea
3.9,7.1,8.4,chickpea
2.5,7.8,7.6,chickpea
3.1,7.0,7.7,chickpea
2.6,8.0,8.3,chickpea
2.5,6.8,7.7,chickpea
3.1,7.8,7.6,chickpea
6.0,6.8,8.3,chickpea
5.9,6.2,8.3,chickpea
2.2,6.7,7.8,chickpea
3.6,6.5,8.0,chickpea
5.9,6.0,8.4,chickpea
5.4,7.7,8.5,chickpea
4.3,6.8,8.1,chickpea
2.8,7.6,8.2,chickpea
4.2,7.9,8.5,chickpea
3.2,6.0,8.3,chickpea
2.2,7.8,7.6,chickpea
3.1,7.9,7.5,chickpea
2.8,5.8,8.1,chickpea
5.7,5.8,7.7,chickpea
4.9,5.5,7.8,chickpea
4.6,7.6,7.7,chickpea
5.4,6.1,7.7,chickpea
3.8,6.0,7.6,chickpea
5.9,5.5,7.9,chickpea
3.6,7.6,7.5,chickpea
5.7,6.8,8.1,chickpea
3.5,6.6,8.1,chickpea
3.5,6.4,7.8,chickpea
5.2,6.0,7.9,chickpea
2.7,7.6,8.3,chickpea
5.7,6.0,8.4,chickpea
5.2,6.8,7.8,chickpea
4.3,7.9,7.9,chickpea
4.4,7.4,8.5,chickpea
2.4,5.5,7.8,chickpea
2.9,7.7,7.5,chickpea
2.0,6.0,7.8,chickpea
5.6,6.7,7.8,chickpea
3.7,6.6,8.5,chickpea
4.9,7.1,7.6,chickpea
5.9,6.9,8.0,chickpea
2.0,7.9,7.7,chickpea
2.4,5.6,8.5,chickpea
5.1,7.2,7.5,chickpea
5.7,7.3,8.5,chickpea
2.2,6.4,8.2,chickpea
5.2,7.3,7.9,chickpea
2.9,7.5,7.5,chickpea
4.4,5.9,7.8,chickpea
4.1,6.9,8.2,chickpea
5.2,5.6,8.5,chickpea
3.4,7.6,8.0,chickpea
4.2,7.4,8.3,chickpea
3.4,7.1,7.9,chickpea
2.7,7.3,7.9,chickpea
3.0,7.0,7.9,chickpea
5.7,5.7,7.5,chickpea
2.7,7.9,8.2,chickpea
3.2,7.1,8.5,chickpea
3.1,7.6,8.2,chickpea
3.3,7.5,8.4,chickpea
4.7,8.0,7.7,chickpea
5.4,6.2,8.0,chickpea
4.7,7.9,7.8,chickpea
3.5,5.7,8.3,chickpea
5.3,7.3,7.7,chickpea
4.5,6.1,7.8,chickpea
3.7,7.8,7.9,chickpea
3.0,7.5,8.1,chickpea
3.7,5.5,8.2,chickpea
5.3,6.5,7.6,chickpea
2.2,6.0,8.5,chickpea
6.0,6.1,7.8,chickpea
4.2,6.7,7.7,chickpea
3.9,7.6,7.6,chickpea
3.5,6.3,7.6,chickpea
3.0,6.5,8.2,chickpea
5.7,5.6,7.8,chickpea
4.8,6.5,7.8,chickpea
3.6,5.6,8.3,chickpea
4.0,5.8,7.5,chickpea
4.9,6.9,8.2,chickpea
1.3,6.0,2.5,kidneybeans
2.5,7.0,1.6,kidneybeans
3.1,5.5,2.2,kidneybeans
4.0,6.4,1.6,kidneybeans
0.2,6.1,2.0,kidneybeans
2.6,6.5,2.2,kidneybeans
1.7,5.7,2.1,kidneybeans
2.6,8.0,1.8,kidneybeans
1.7,5.9,1.7,kidneybeans
2.7,5.9,2.2,kidneybeans
2.8,5.8,2.4,kidneybeans
2.5,5.7,1.9,kidneybeans
2.8,8.0,1.7,kidneybeans
2.5,6.0,2.2,kidneybeans
1.2,7.8,2.3,kidneybeans
0.6,7.7,2.5,kidneybeans
2.2,7.9,1.7,kidneybeans
2.7,8.0,1.5,kidneybeans
1.0,5.5,2.3,kidneybeans
2.3,6.5,2.0,kidneybeans
1.9,7.8,1.6,kidneybeans
1.9,6.5,2.5,kidneybeans
2.2,7.0,1.9,kidneybeans
3.7,6.4,2.2,kidneybeans
1.1,7.1,1.7,kidneybeans
1.8,7.9,2.0,kidneybeans
2.1,6.3,1.7,kidneybeans
2.4,8.0,2.2,kidneybeans
3.4,6.0,2.2,kidneybeans
1.6,7.5,2.1,kidneybeans
1.7,7.7,2.3,kidneybeans
3.7,7.2,1.8,kidneybeans
4.0,7.3,2.0,kidneybeans
0.9,7.7,1.7,kidneybeans
0.1,6.2,2.3,kidneybeans
3.3,5.9,2.2,kidneybeans
2.3,5.9,1.9,kidneybeans
0.6,6.2,2.2,kidneybeans
2.5,6.3,2.0,kidneybeans
0.7,7.9,2.3,kidneybeans
0.8,7.2,1.7,kidneybeans
2.7,6.4,1.5,kidneybeans
2.8,6.6,2.3,kidneybeans
3.2,5.7,1.8,kidneybeans
2.7,5.6,2.2,kidneybeans
1.7,7.7,2.4,kidneybeans
0.0,6.5,1.5,kidneybeans
1.3,7.2,2.1,kidneybeans
3.4,6.0,2.3,kidneybeans
0.9,8.0,1.9,kidneybeans
1.1,7.2,2.0,kidneybeans
0.3,6.7,2.4,kidneybeans
3.5,6.9,2.3,kidneybeans
0.3,7.7,2.5,kidneybeans
2.3,6.2,1.9,kidneybeans
2.2,7.1,1.7,kidneybeans
3.1,7.9,2.5,kidneybeans
3.4,5.9,1.8,kidneybeans
1.2,6.3,1.7,kidneybeans
2.7,5.6,2.0,kidneybeans
0.7,6.3,2.4,kidneybeans
2.4,6.7,2.2,kidneybeans
1.1,7.1,2.4,kidneybeans
3.7,7.4,1.5,kidneybeans
2.5,7.6,2.4,kidneybeans
3.4,6.6,1.7,kidneybeans
2.0,6.9,1.5,kidneybeans
3.7,6.5,1.6,kidneybeans
1.8,7.4,1.5,kidneybeans
0.4,6.7,2.5,kidneybeans
3.7,5.6,2.5,kidneybeans
0.5,5.9,1.5,kidneybeans
1.1,6.1,2.1,kidneybeans
2.2,8.0,2.0,kidneybeans
1.2,6.1,1.9,kidneybeans
0.5,7.4,2.1,kidneybeans
2.7,6.9,2.2,kidneybeans
3.1,7.5,1.8,kidneybeans
3.6,6.8,2.0,kidneybeans
0.5,6.5,1.6,kidneybeans
3.2,7.9,1.5,kidneybeans
1.1,7.8,2.2,kidneybeans
0.0,5.5,2.2,kidneybeans
1.4,5.9,1.5,kidneybeans
2.9,6.8,2.3,kidneybeans
3.2,6.8,1.9,kidneybeans
1.7,6.4,1.7,kidneybeans
1.3,6.9,1.9,kidneybeans
1.4,6.7,2.2,kidneybeans
0.9,6.9,2.0,kidneybeans
2.0,7.3,2.2,kidneybeans
4.0,7.8,2.0,kidneybeans
2.7,7.2,2.3,kidneybeans
1.4,6.7,1.5,kidneybeans
0.7,5.6,1.8,kidneybeans
2.7,6.5,1.8,kidneybeans
3.0,6.3,1.6,kidneybeans
3.7,7.0,2.5,kidneybeans
2.7,6.3,1.9,kidneybeans
2.2,6.0,2.4,kidneybeans
0.3,7.2,2.4,pigeonpeas
4.0,5.9,2.3,pigeonpeas
3.3,7.3,2.3,pigeonpeas
2.7,5.7,2.4,pigeonpeas
1.0,7.9,1.8,pigeonpeas
3.0,7.5,2.5,pigeonpeas
4.0,7.0,2.0,pigeonpeas
3.8,5.5,1.9,pigeonpeas
3.5,5.8,2.0,pigeonpeas
3.8,6.1,2.1,pigeonpeas
3.3,5.8,2.4,pigeonpeas
1.6,5.6,1.7,pigeonpeas
3.1,7.2,1.7,pigeonpeas
1.6,8.0,2.0,pigeonpeas
2.7,7.2,1.7,pigeonpeas
4.0,6.2,1.9,pigeonpeas
1.8,5.8,1.6,pigeonpeas
0.3,6.8,1.6,pigeonpeas
2.6,6.7,2.4,pigeonpeas
1.6,7.0,2.0,pigeonpeas
2.4,6.3,1.9,pigeonpeas
0.9,7.6,2.5,pigeonpeas
1.6,5.5,1.9,pigeonpeas
2.8,7.5,2.1,pigeonpeas
1.6,7.1,2.4,pigeonpeas
2.4,7.0,2.1,pigeonpeas
3.8,7.2,2.1,pigeonpeas
0.9,6.6,2.1,pigeonpeas
3.4,5.6,1.7,pigeonpeas
0.1,7.6,1.9,pigeonpeas
0.6,6.9,1.9,pigeonpeas
2.6,7.3,2.1,pigeonpeas
2.7,6.1,1.8,pigeonpeas
2.7,7.1,2.3,pigeonpeas
3.6,6.1,2.1,pigeonpeas
1.7,7.3,1.8,pigeonpeas
2.6,7.2,2.2,pigeonpeas
1.7,6.4,1.6,pigeonpeas
1.4,7.4,1.9,pigeonpeas
3.9,6.0,1.5,pigeonpeas
0.6,6.6,1.5,pigeonpeas
0.8,5.9,1.8,pigeonpeas
0.2,6.7,1.8,pigeonpeas
0.1,7.6,1.7,pigeonpeas
1.6,7.3,1.9,pigeonpeas
2.3,7.5,2.5,pigeonpeas
3.2,7.0,2.0,pigeonpeas
2.8,5.9,2.2,pigeonpeas
0.5,6.2,2.3,pigeonpeas
3.6,6.7,2.5,pigeonpeas
0.1,6.6,2.3,pigeonpeas
2.4,7.3,2.0,pigeonpeas
1.7,6.7,1.8,pigeonpeas
0.5,5.5,1.8,pigeonpeas
0.5,5.6,2.4,pigeonpeas
3.7,7.7,1.7,pigeonpeas
1.3,7.3,2.0,pigeonpeas
0.6,6.3,2.3,pigeonpeas
1.6,7.7,2.2,pigeonpeas
2.5,6.4,2.0,pigeonpeas
3.4,7.5,2.4,pigeonpeas
2.0,7.7,2.3,pigeonpeas
3.5,8.0,2.5,pigeonpeas
1.4,7.5,2.4,pigeonpeas
3.6,8.0,2.1,pigeonpeas
0.7,7.7,1.8,pigeonpeas
2.9,7.8,2.5,pigeonpeas
3.0,6.0,2.1,pigeonpeas
2.0,7.4,1.6,pigeonpeas
1.9,5.7,2.3,pigeonpeas
0.3,6.0,1.9,pigeonpeas
0.5,7.7,1.9,pigeonpeas
0.5,6.8,2.0,pigeonpeas
3.7,7.3,2.1,pigeonpeas
0.9,5.9,2.4,pigeonpeas
2.0,7.2,1.5,pigeonpeas
3.1,5.6,2.3,pigeonpeas
0.0,7.0,2.1,pigeonpeas
2.1,7.4,1.5,pigeonpeas
1.3,6.7,1.8,pigeonpeas
2.7,7.4,2.0,pigeonpeas
2.9,7.2,2.4,pigeonpeas
0.5,6.8,2.0,pigeonpeas
3.9,5.7,1.9,pigeonpeas
2.2,6.2,1.6,pigeonpeas
1.8,5.5,2.3,pigeonpeas
3.9,7.7,2.1,pigeonpeas
1.3,7.5,2.0,pigeonpeas
2.7,7.1,2.4,pigeonpeas
2.6,6.4,2.2,pigeonpeas
2.3,5.5,1.6,pigeonpeas
0.4,6.9,1.9,pigeonpeas
2.0,6.7,1.9,pigeonpeas
0.7,7.4,1.7,pigeonpeas
1.7,6.4,1.8,pigeonpeas
3.5,7.1,1.7,pigeonpeas
1.1,7.2,2.2,pigeonpeas
2.0,6.0,2.2,pigeonpeas
1.0,7.1,1.8,pigeonpeas
3.3,6.1,2.4,pigeonpeas
0.3,4.9,1.8,mothbeans
2.2,5.9,2.3,mothbeans
3.6,5.8,2.5,mothbeans
0.4,4.3,1.8,mothbeans
2.9,5.4,1.6,mothbeans
3.2,4.3,2.2,mothbeans
1.4,5.5,1.5,mothbeans
0.5,3.5,2.0,mothbeans
2.5,5.7,2.4,mothbeans
1.1,5.3,2.4,mothbeans
4.0,4.9,1.7,mothbeans
3.8,5.6,2.5,mothbeans
2.7,4.3,2.3,mothbeans
2.4,3.8,2.2,mothbeans
2.3,4.5,2.1,mothbeans
2.9,5.7,2.0,mothbeans
3.1,3.5,2.3,mothbeans
0.0,5.5,2.5,mothbeans
0.7,4.5,2.2,mothbeans
1.7,5.8,2.5,mothbeans
1.1,4.4,1.7,mothbeans
2.2,4.9,2.2,mothbeans
0.9,5.1,1.9,mothbeans
2.8,4.8,1.5,mothbeans
2.6,5.0,1.9,mothbeans
3.6,5.6,2.0,mothbeans
0.8,6.0,1.8,mothbeans
2.4,3.7,2.1,mothbeans
2.2,4.3,2.4,mothbeans
3.6,4.3,2.4,mothbeans
2.2,4.4,2.4,mothbeans
1.7,4.3,2.2,mothbeans
0.8,4.5,1.5,mothbeans
0.7,5.6,2.3,mothbeans
3.6,5.7,1.6,mothbeans
1.1,4.5,1.9,mothbeans
0.6,3.6,2.2,mothbeans
1.7,5.7,2.0,mothbeans
0.4,4.7,2.0,mothbeans
0.9,4.9,1.6,mothbeans
2.5,5.1,2.4,mothbeans
3.6,4.4,2.1,mothbeans
2.1,3.8,2.0,mothbeans
3.7,5.7,2.0,mothbeans
3.2,4.8,1.8,mothbeans
2.9,4.4,2.0,mothbeans
2.5,5.1,1.8,mothbeans
1.0,4.4,2.4,mothbeans
2.3,3.5,1.8,mothbeans
0.9,6.0,2.3,mothbeans
0.3,5.8,2.1,mothbeans
2.2,4.2,2.2,mothbeans
1.2,3.9,2.1,mothbeans
3.9,3.6,2.2,mothbeans
3.2,4.1,1.6,mothbeans
3.0,4.1,1.5,mothbeans
1.9,3.6,2.2,mothbeans
0.4,4.6,1.5,mothbeans
2.1,3.9,2.0,mothbeans
3.5,5.7,2.5,mothbeans
2.2,5.5,2.4,mothbeans
3.5,5.1,1.7,mothbeans
1.7,5.6,1.7,mothbeans
2.8,5.7,1.7,mothbeans
2.2,3.6,1.6,mothbeans
1.1,4.1,1.9,mothbeans
3.8,3.8,1.8,mothbeans
2.3,3.7,2.4,mothbeans
2.5,3.5,2.0,mothbeans
4.0,4.5,2.0,mothbeans
2.3,5.8,1.9,mothbeans
0.2,5.6,2.3,mothbeans
0.3,5.6,1.7,mothbeans
2.6,5.1,2.5,mothbeans
3.9,4.2,2.0,mothbeans
2.7,5.9,2.0,mothbeans
2.4,4.5,1.9,mothbeans
0.7,4.0,1.7,mothbeans
1.5,4.5,2.3,mothbeans
2.6,5.2,2.3,mothbeans
2.0,4.5,1.6,mothbeans
3.4,5.4,2.4,mothbeans
1.9,5.1,2.5,mothbeans
2.9,4.1,2.1,mothbeans
2.0,5.0,2.2,mothbeans
1.1,4.0,2.3,mothbeans
1.5,5.4,1.5,mothbeans
3.5,5.5,2.2,mothbeans
0.9,5.9,2.5,mothbeans
4.0,4.5,1.8,mothbeans
3.5,3.8,1.9,mothbeans
1.4,5.8,1.7,mothbeans
4.0,5.5,1.8,mothbeans
1.8,3.6,2.3,mothbeans
3.5,5.2,1.5,mothbeans
0.4,5.9,2.2,mothbeans
2.2,5.1,1.6,mothbeans
3.3,4.7,1.7,mothbeans
0.2,5.1,1.7,mothbeans
1.6,5.1,2.1,mothbeans
1.9,5.5,2.0,mungbean
0.8,5.4,2.0,mungbean
3.6,5.5,2.0,mungbean
1.0,5.6,1.6,mungbean
2.2,5.6,1.7,mungbean
0.9,5.7,2.4,mungbean
3.4,5.9,2.3,mungbean
3.1,5.1,2.5,mungbean
0.0,4.9,1.8,mungbean
2.1,3.9,2.0,mungbean
2.8,3.5,2.2,mungbean
1.7,5.2,1.7,mungbean
2.4,4.2,2.3,mungbean
2.8,4.6,1.6,mungbean
2.1,3.8,2.1,mungbean
3.4,6.0,2.5,mungbean
1.9,5.3,2.2,mungbean
3.1,5.8,1.5,mungbean
1.9,3.5,2.4,mungbean
2.4,5.3,1.7,mungbean
1.3,4.7,2.0,mungbean
3.1,5.3,1.6,mungbean
2.8,4.5,2.3,mungbean
3.1,3.7,2.1,mungbean
3.3,6.0,1.5,mungbean
3.4,4.5,2.1,mungbean
1.3,5.7,2.5,mungbean
3.3,5.7,1.7,mungbean
3.2,5.7,2.2,mungbean
2.3,5.9,2.5,mungbean
3.5,4.1,1.8,mungbean
0.6,4.8,2.4,mungbean
2.9,3.6,2.5,mungbean
0.4,3.6,2.2,mungbean
1.0,5.9,2.2,mungbean
1.4,4.8,2.1,mungbean
0.8,5.0,2.1,mungbean
2.0,4.0,1.5,mungbean
3.6,4.3,2.2,mungbean
1.4,5.7,1.5,mungbean
1.1,6.0,2.3,mungbean
1.0,5.9,1.5,mungbean
0.7,6.0,2.5,mungbean
0.2,4.7,1.5,mungbean
2.0,4.5,2.2,mungbean
0.2,3.9,1.5,mungbean
2.7,4.0,2.4,mungbean
3.5,4.8,1.5,mungbean
0.4,5.9,2.5,mungbean
0.1,4.8,2.4,mungbean
3.6,4.3,2.1,mungbean
1.1,4.6,2.4,mungbean
3.4,4.7,1.9,mungbean
2.1,4.4,1.8,mungbean
1.7,5.8,2.0,mungbean
2.5,4.0,2.1,mungbean
0.2,3.8,1.8,mungbean
0.9,4.8,2.0,mungbean
3.7,4.9,2.5,mungbean
3.6,3.8,1.5,mungbean
4.0,5.8,1.5,mungbean
3.0,4.4,1.6,mungbean
0.1,5.9,2.3,mungbean
0.9,4.8,2.2,mungbean
1.4,4.1,1.7,mungbean
3.5,5.2,1.9,mungbean
3.1,4.8,1.7,mungbean
0.4,4.1,2.0,mungbean
3.0,3.7,2.5,mungbean
0.9,3.5,2.0,mungbean
2.0,4.1,2.0,mungbean
3.7,5.0,2.3,mungbean
3.4,3.5,2.1,mungbean
1.4,3.7,1.5,mungbean
2.3,3.9,2.2,mungbean
0.5,4.5,2.1,mungbean
2.2,3.7,2.0,mungbean
4.0,5.1,1.7,mungbean
2.7,5.6,2.0,mungbean
3.1,4.0,2.2,mungbean
3.8,3.6,2.1,mungbean
0.6,3.7,1.7,mungbean
0.6,4.7,1.8,mungbean
2.4,4.4,1.7,mungbean
2.5,5.9,1.9,mungbean
3.2,5.6,2.1,mungbean
0.8,4.5,1.8,mungbean
1.9,3.9,1.7,mungbean
3.9,3.7,1.5,mungbean
3.3,3.7,1.9,mungbean
2.6,5.4,1.7,mungbean
2.1,5.1,1.5,mungbean
2.2,5.4,2.0,mungbean
2.9,4.5,1.6,mungbean
0.4,4.0,2.1,mungbean
1.0,3.7,2.2,mungbean
0.4,4.4,1.9,mungbean
2.0,4.5,1.7,mungbean
2.3,4.5,2.3,mungbean
2.5,4.8,2.1,mungbean
5.6,7.9,1.5,blackgram
2.5,6.2,2.1,blackgram
4.2,6.1,2.2,blackgram
4.2,7.3,2.5,blackgram
4.4,5.8,1.8,blackgram
5.0,5.5,1.6,blackgram
3.5,7.2,2.1,blackgram
3.0,6.4,2.0,blackgram
2.7,6.4,2.1,blackgram
5.0,7.4,1.7,blackgram
3.9,7.3,2.4,blackgram
5.7,6.7,2.5,blackgram
5.2,6.3,1.9,blackgram
5.5,6.6,2.2,blackgram
5.1,5.6,1.8,blackgram
3.6,6.6,1.5,blackgram
5.9,5.5,1.9,blackgram
5.0,5.8,2.3,blackgram
3.0,6.5,2.5,blackgram
2.0,6.2,1.8,blackgram
5.8,7.1,1.5,blackgram
2.5,7.1,2.4,blackgram
5.2,7.1,1.6,blackgram
4.0,6.3,1.8,blackgram
2.0,6.0,2.5,blackgram
4.8,6.1,2.1,blackgram
4.9,6.8,2.2,blackgram
4.8,6.2,1.5,blackgram
3.2,6.6,1.7,blackgram
2.1,6.3,2.2,blackgram
2.0,7.2,1.9,blackgram
2.5,6.5,2.1,blackgram
4.1,7.8,2.1,blackgram
5.3,6.7,1.7,blackgram
3.9,6.0,2.1,blackgram
2.5,7.6,1.7,blackgram
2.1,7.8,1.9,blackgram
5.7,6.0,1.7,blackgram
5.6,7.5,1.5,blackgram
4.9,7.2,1.5,blackgram
2.4,8.0,1.9,blackgram
4.9,7.6,1.8,blackgram
2.8,6.8,1.9,blackgram
5.5,7.8,2.1,blackgram
5.0,6.4,2.5,blackgram
3.4,8.0,1.9,blackgram
2.0,6.8,2.3,blackgram
5.5,6.7,1.6,blackgram
2.3,7.0,1.5,blackgram
5.3,7.4,1.5,blackgram
2.6,6.7,1.6,blackgram
3.3,8.0,2.2,blackgram
3.7,7.9,1.9,blackgram
3.3,7.5,2.1,blackgram
2.2,5.5,2.0,blackgram
2.0,6.8,1.7,blackgram
4.3,6.8,2.0,blackgram
4.4,7.6,2.2,blackgram
3.4,6.0,1.6,blackgram
2.1,7.2,1.7,blackgram
2.5,6.8,1.9,blackgram
4.1,6.2,1.5,blackgram
2.8,6.5,2.3,blackgram
3.5,6.4,1.5,blackgram
5.2,5.8,1.6,blackgram
5.8,7.5,2.5,blackgram
3.4,6.6,1.9,blackgram
5.2,7.0,1.6,blackgram
2.3,5.7,1.9,blackgram
4.2,5.8,2.5,blackgram
3.7,6.2,1.7,blackgram
4.4,7.5,2.2,blackgram
2.1,8.0,2.0,blackgram
5.6,7.6,1.6,blackgram
2.9,7.6,1.5,blackgram
4.3,6.1,2.0,blackgram
5.5,6.0,1.5,blackgram
4.4,6.3,1.5,blackgram
2.9,6.7,2.1,blackgram
4.7,6.3,1.6,blackgram
4.0,6.8,1.7,blackgram
5.8,6.1,1.5,blackgram
4.1,7.4,1.8,blackgram
5.8,7.9,1.7,blackgram
2.7,6.2,2.4,blackgram
2.7,6.0,1.7,blackgram
5.2,6.5,2.0,blackgram
4.4,5.5,2.5,blackgram
2.1,6.2,2.4,blackgram
6.0,5.9,2.2,blackgram
3.3,7.7,2.1,blackgram
5.9,5.8,1.7,blackgram
2.9,6.3,1.7,blackgram
5.9,6.3,1.8,blackgram
2.9,7.0,1.5,blackgram
5.8,7.3,1.6,blackgram
5.5,7.7,2.2,blackgram
4.2,7.9,2.3,blackgram
4.4,7.7,2.1,blackgram
3.8,6.2,2.5,blackgram
3.2,7.6,1.5,lentil
1.3,6.1,2.2,lentil
3.8,6.0,2.0,lentil
1.1,7.4,1.7,lentil
3.7,7.1,1.6,lentil
2.9,7.1,1.8,lentil
0.2,7.2,1.8,lentil
0.6,5.9,2.1,lentil
1.3,6.4,2.0,lentil
0.8,5.8,1.7,lentil
0.6,7.7,2.0,lentil
0.2,7.5,2.2,lentil
0.3,6.9,2.3,lentil
2.7,8.0,2.4,lentil
3.9,7.8,1.5,lentil
4.0,7.9,1.7,lentil
3.7,6.2,2.2,lentil
3.1,6.0,2.4,lentil
2.2,6.7,2.2,lentil
0.3,7.8,1.8,lentil
0.4,8.0,1.6,lentil
1.3,6.1,2.4,lentil
1.2,6.6,2.0,lentil
0.4,6.1,2.1,lentil
0.9,6.0,2.1,lentil
1.8,6.6,2.2,lentil
3.2,5.6,1.8,lentil
0.6,7.2,1.5,lentil
1.5,7.7,2.0,lentil
0.0,6.5,2.4,lentil
3.0,7.9,2.2,lentil
0.3,6.3,1.6,lentil
0.2,7.8,2.3,lentil
1.0,7.8,1.8,lentil
1.4,6.7,2.5,lentil
3.9,6.5,2.3,lentil
1.9,7.2,1.5,lentil
1.8,5.7,2.1,lentil
3.1,5.8,1.5,lentil
2.8,5.8,2.5,lentil
0.5,6.5,1.9,lentil
1.6,6.5,1.9,lentil
3.4,6.5,1.9,lentil
1.4,6.9,1.9,lentil
2.2,5.5,1.6,lentil
2.4,6.1,1.7,lentil
0.2,7.9,1.5,lentil
2.6,6.3,1.7,lentil
2.7,6.1,1.5,lentil
2.4,7.0,1.6,lentil
1.3,7.4,2.5,lentil
0.6,6.4,2.3,lentil
1.2,5.8,2.3,lentil
3.2,7.9,2.2,lentil
0.6,6.8,1.8,lentil
1.0,7.9,2.0,lentil
3.8,7.7,2.2,lentil
1.7,7.4,1.7,lentil
2.6,6.8,2.4,lentil
2.3,7.5,1.7,lentil
3.2,7.8,2.2,lentil
1.9,7.9,1.9,lentil
2.2,6.0,1.8,lentil
2.8,6.9,1.6,lentil
0.1,6.7,2.1,lentil
1.2,6.7,2.3,lentil
3.6,6.7,2.0,lentil
2.8,7.0,2.1,lentil
1.2,7.1,1.9,lentil
2.2,6.8,1.6,lentil
2.6,6.6,2.2,lentil
1.6,6.5,1.6,lentil
1.4,5.9,2.2,lentil
3.3,5.9,1.9,lentil
2.1,6.3,1.7,lentil
0.0,6.9,2.1,lentil
1.0,7.5,1.7,lentil
3.0,6.1,1.8,lentil
0.0,7.4,1.7,lentil
3.5,7.4,2.2,lentil
0.7,6.3,2.4,lentil
0.9,5.6,1.7,lentil
1.4,7.4,1.5,lentil
1.4,7.6,2.0,lentil
3.6,6.5,1.6,lentil
2.8,6.7,2.1,lentil
2.8,7.9,1.6,lentil
4.0,6.1,2.2,lentil
1.0,7.0,1.9,lentil
1.2,8.0,1.9,lentil
3.7,7.7,2.0,lentil
0.0,6.7,2.2,lentil
0.7,7.3,2.5,lentil
1.0,5.6,1.8,lentil
3.9,7.0,1.5,lentil
2.6,5.6,2.2,lentil
0.9,7.7,1.7,lentil
0.4,5.9,1.9,lentil
3.4,7.3,1.5,lentil
3.3,7.7,1.5,lentil
0.2,2.4,3.8,pomegranate
0.6,1.8,3.7,pomegranate
0.8,2.6,3.6,pomegranate
3.7,1.8,3.9,pomegranate
0.0,2.7,3.8,pomegranate
3.1,2.5,3.8,pomegranate
2.1,2.1,3.8,pomegranate
0.6,3.0,4.0,pomegranate
2.5,2.7,4.1,pomegranate
1.5,1.1,3.8,pomegranate
1.4,0.5,3.6,pomegranate
1.6,1.0,4.1,pomegranate
3.6,0.7,3.7,pomegranate
0.4,2.0,4.1,pomegranate
2.9,2.2,4.0,pomegranate
1.6,1.5,4.2,pomegranate
1.8,2.7,4.1,pomegranate
1.1,1.8,4.2,pomegranate
0.5,1.5,3.8,pomegranate
1.8,2.3,4.4,pomegranate
0.9,0.8,4.0,pomegranate
4.0,2.7,4.5,pomegranate
2.2,2.3,4.4,pomegranate
0.9,1.6,3.9,pomegranate
1.2,2.9,4.0,pomegranate
0.0,1.7,4.2,pomegranate
0.2,2.1,4.4,pomegranate
2.8,0.6,4.0,pomegranate
0.8,2.3,4.4,pomegranate
2.9,1.6,3.6,pomegranate
1.7,1.8,4.3,pomegranate
3.4,2.1,4.2,pomegranate
2.1,2.3,4.2,pomegranate
2.5,1.7,4.0,pomegranate
0.8,2.5,3.6,pomegranate
2.6,1.8,4.2,pomegranate
0.4,1.9,4.2,pomegranate
3.6,2.4,4.1,pomegranate
0.5,2.4,4.0,pomegranate
1.9,1.7,3.9,pomegranate
3.9,3.0,3.8,pomegranate
0.5,2.9,4.4,pomegranate
0.4,2.4,4.3,pomegranate
3.8,2.1,3.5,pomegranate
3.7,1.1,3.6,pomegranate
0.9,2.5,4.1,pomegranate
2.9,2.2,4.3,pomegranate
0.5,2.1,3.8,pomegranate
2.2,2.6,3.8,pomegranate
0.4,1.8,3.7,pomegranate
2.1,0.6,4.1,pomegranate
2.9,2.1,4.5,pomegranate
2.3,0.5,4.4,pomegranate
1.3,0.7,4.3,pomegranate
0.5,1.3,3.7,pomegranate
2.7,2.4,4.1,pomegranate
0.7,2.3,3.5,pomegranate
1.2,2.0,3.9,pomegranate
0.4,1.9,4.3,pomegranate
0.3,0.9,4.5,pomegranate
0.1,2.7,3.6,pomegranate
2.3,3.0,4.4,pomegranate
2.4,2.1,4.2,pomegranate
1.3,3.0,3.7,pomegranate
4.0,1.1,4.4,pomegranate
2.1,0.9,4.0,pomegranate
0.3,2.7,4.4,pomegranate
4.0,2.9,4.2,pomegranate
1.4,2.5,4.0,pomegranate
3.8,1.4,3.7,pomegranate
3.4,0.9,3.6,pomegranate
3.2,1.4,3.7,pomegranate
1.8,2.1,3.5,pomegranate
0.8,2.3,3.8,pomegranate
1.5,0.6,4.1,pomegranate
0.0,0.5,3.6,pomegranate
2.2,0.9,4.4,pomegranate
1.4,0.8,4.3,pomegranate
3.1,1.1,4.5,pomegranate
3.9,1.7,4.5,pomegranate
1.0,0.5,4.2,pomegranate
0.8,2.8,3.8,pomegranate
3.2,1.3,4.2,pomegranate
1.8,0.9,4.0,pomegranate
2.0,2.7,4.1,pomegranate
3.9,2.5,3.6,pomegranate
2.0,0.7,4.5,pomegranate
1.1,1.0,4.5,pomegranate
4.0,1.8,4.3,pomegranate
0.3,2.6,3.9,pomegranate
0.9,1.6,3.6,pomegranate
3.0,2.0,3.8,pomegranate
4.0,0.9,4.1,pomegranate
4.0,3.0,3.5,pomegranate
3.2,2.5,3.5,pomegranate
3.3,2.3,4.5,pomegranate
0.4,1.4,4.1,pomegranate
1.3,1.7,4.5,pomegranate
3.9,2.4,3.9,pomegranate
0.8,2.8,3.7,pomegranate
9.1,9.4,4.6,banana
10.5,9.5,5.0,banana
10.8,9.2,5.3,banana
8.6,7.6,5.4,banana
8.0,7.7,4.9,banana
9.3,9.4,5.3,banana
9.0,9.2,5.5,banana
10.8,8.9,5.3,banana
10.8,8.8,5.5,banana
10.5,7.7,5.2,banana
11.8,8.8,5.2,banana
10.1,8.7,5.4,banana
9.5,7.5,5.0,banana
10.6,8.5,5.3,banana
8.6,9.5,4.9,banana
8.3,7.9,5.5,banana
8.5,9.5,4.7,banana
10.9,7.9,4.5,banana
10.0,7.6,4.5,banana
11.7,8.6,4.8,banana
11.4,9.4,5.3,banana
11.0,7.8,5.0,banana
9.4,7.0,4.8,banana
8.0,7.1,4.7,banana
11.4,7.9,5.1,banana
8.8,7.8,4.5,banana
11.2,7.3,4.8,banana
11.7,7.6,4.7,banana
11.1,8.7,4.8,banana
8.9,8.3,4.7,banana
9.3,9.1,4.7,banana
9.2,8.1,5.2,banana
10.5,7.4,4.5,banana
10.2,7.1,4.8,banana
9.4,9.1,5.1,banana
11.6,7.1,4.7,banana
11.7,7.9,4.9,banana
11.9,7.2,5.5,banana
9.9,7.3,5.3,banana
9.1,8.4,5.2,banana
8.0,9.0,4.7,banana
10.1,7.0,4.8,banana
10.8,8.9,5.3,banana
10.0,8.0,5.2,banana
10.9,9.1,5.3,banana
8.2,7.8,4.6,banana
10.6,7.0,5.5,banana
9.0,8.6,5.2,banana
8.3,9.5,5.0,banana
11.9,9.0,4.8,banana
10.7,7.2,4.5,banana
11.6,8.1,5.5,banana
10.1,7.5,5.0,banana
9.3,8.1,5.0,banana
9.5,7.5,4.5,banana
10.7,7.1,5.5,banana
8.3,9.4,4.7,banana
10.2,7.3,5.4,banana
8.6,7.9,4.5,banana
11.7,8.6,5.3,banana
11.1,7.9,5.3,banana
9.5,7.4,5.0,banana
9.1,7.5,5.5,banana
9.3,8.3,4.6,banana
9.2,8.5,5.1,banana
10.4,8.0,5.4,banana
10.3,7.2,5.1,banana
9.2,7.5,4.5,banana
9.3,8.5,4.9,banana
12.0,8.7,5.2,banana
10.8,7.2,4.6,banana
10.5,8.8,5.4,banana
9.8,7.9,5.0,banana
11.1,8.8,5.5,banana
9.7,7.4,4.5,banana
9.5,8.2,4.8,banana
8.9,9.1,5.5,banana
8.9,8.5,5.5,banana
11.8,8.8,5.1,banana
10.1,9.2,4.5,banana
9.9,9.2,4.7,banana
8.2,7.7,4.6,banana
9.0,8.6,5.5,banana
9.5,8.8,5.2,banana
10.4,7.3,4.6,banana
10.2,7.3,5.2,banana
10.0,7.4,5.2,banana
9.4,8.9,4.8,banana
9.9,7.0,4.6,banana
11.2,8.7,4.8,banana
11.7,8.2,4.5,banana
9.6,8.6,5.1,banana
11.3,8.5,4.5,banana
10.5,9.3,4.6,banana
8.5,8.9,5.1,banana
10.8,9.4,4.7,banana
9.2,8.1,5.2,banana
11.0,7.1,5.4,banana
8.2,7.5,5.5,banana
11.7,8.1,5.3,banana
0.2,4.0,2.7,mango
3.9,2.4,3.1,mango
2.1,2.6,2.7,mango
2.5,2.2,2.5,mango
0.0,2.1,3.2,mango
2.0,1.9,3.5,mango
1.9,2.1,3.4,mango
1.8,1.7,3.1,mango
1.1,3.6,3.3,mango
3.0,2.8,3.0,mango
1.8,1.9,2.7,mango
2.3,2.3,2.7,mango
3.7,3.0,3.4,mango
1.1,2.7,3.0,mango
1.2,1.9,3.1,mango
0.3,2.8,3.3,mango
3.7,3.8,3.2,mango
2.6,3.7,3.0,mango
1.4,1.8,3.0,mango
4.0,1.6,3.5,mango
0.4,2.0,2.5,mango
3.6,2.5,3.3,mango
3.0,1.7,3.1,mango
2.8,3.7,2.8,mango
3.8,1.5,3.0,mango
1.2,3.7,3.0,mango
3.8,1.9,3.1,mango
0.8,3.3,2.9,mango
1.5,2.7,2.8,mango
3.4,1.6,2.5,mango
1.1,3.6,3.1,mango
3.3,2.9,3.4,mango
1.2,3.1,2.6,mango
1.2,3.4,2.8,mango
0.5,1.6,3.1,mango
0.1,3.0,2.9,mango
1.6,3.5,3.1,mango
3.5,1.8,2.6,mango
0.4,4.0,2.6,mango
0.9,2.9,3.4,mango
0.2,3.8,3.3,mango
2.6,3.2,3.2,mango
3.4,3.8,3.1,mango
0.5,3.2,3.3,mango
3.1,2.9,2.6,mango
3.4,3.4,3.5,mango
3.6,1.9,3.2,mango
0.7,1.7,2.6,mango
3.8,1.5,2.7,mango
0.5,1.9,2.5,mango
3.7,3.6,2.6,mango
2.1,3.1,3.2,mango
3.7,3.6,2.7,mango
2.3,2.3,3.0,mango
3.6,2.6,2.6,mango
2.4,3.3,3.5,mango
2.6,1.8,3.0,mango
2.2,1.7,2.6,mango
1.1,3.4,3.2,mango
2.9,3.5,2.8,mango
2.2,2.8,2.6,mango
2.3,2.4,3.2,mango
0.1,3.5,3.4,mango
0.2,2.4,3.4,mango
3.9,3.7,2.5,mango
1.5,3.6,2.7,mango
0.3,1.8,3.1,mango
0.8,3.8,3.2,mango
3.3,3.1,3.4,mango
1.4,2.9,3.2,mango
1.8,2.0,2.6,mango
0.9,2.1,3.2,mango
2.0,3.0,2.7,mango
0.9,3.8,2.5,mango
2.6,2.4,3.4,mango
3.1,3.6,2.9,mango
1.4,1.8,3.5,mango
4.0,1.6,3.5,mango
2.8,2.7,3.4,mango
0.0,1.7,3.0,mango
0.1,2.9,2.9,mango
0.2,3.6,3.1,mango
1.2,2.7,2.6,mango
0.7,2.8,3.5,mango
0.0,3.6,2.6,mango
2.6,3.5,3.1,mango
2.7,2.1,3.0,mango
2.2,3.8,3.1,mango
2.2,1.8,3.1,mango
2.8,2.3,2.8,mango
0.7,3.1,2.7,mango
2.9,3.4,2.6,mango
0.8,3.7,3.3,mango
3.9,1.6,2.7,mango
4.0,2.4,2.5,mango
1.9,3.8,2.6,mango
2.1,2.1,3.0,mango
2.2,1.8,3.3,mango
3.1,2.0,3.0,mango
1.8,2.6,3.1,mango
2.4,13.0,19.5,carrot
1.3,14.4,20.4,carrot
2.2,12.3,20.5,carrot
3.6,12.5,19.6,carrot
2.4,13.1,19.6,carrot
0.2,12.3,19.8,carrot
3.5,14.0,19.7,carrot
1.1,12.2,19.5,carrot
0.6,12.3,20.3,carrot
1.7,13.4,20.4,carrot
2.5,13.0,19.7,carrot
2.7,14.5,20.5,carrot
0.9,12.2,20.1,carrot
1.6,13.9,20.3,carrot
3.2,14.1,20.4,carrot
2.2,13.8,19.5,carrot
3.1,14.4,20.2,carrot
0.3,13.6,20.5,carrot
2.8,12.2,19.7,carrot
0.4,13.6,20.4,carrot
3.9,14.5,20.1,carrot
3.8,13.2,19.7,carrot
3.6,13.3,19.8,carrot
2.5,12.1,20.1,carrot
1.5,12.5,19.9,carrot
2.4,14.0,20.5,carrot
1.3,13.2,20.3,carrot
0.5,12.6,19.7,carrot
3.0,12.0,20.0,carrot
2.3,14.2,19.7,carrot
2.6,13.5,20.3,carrot
0.7,12.6,20.3,carrot
3.2,13.9,19.8,carrot
0.9,14.1,20.2,carrot
2.0,14.2,19.6,carrot
3.2,12.9,20.1,carrot
0.3,13.4,19.9,carrot
3.8,13.8,20.4,carrot
1.4,13.1,19.8,carrot
2.0,12.2,20.4,carrot
4.0,12.6,20.1,carrot
3.6,12.8,20.4,carrot
1.1,13.2,19.7,carrot
0.0,13.7,19.5,carrot
1.9,12.3,20.0,carrot
3.1,13.6,19.7,carrot
0.4,13.4,20.0,carrot
3.9,13.9,20.1,carrot
0.8,12.7,19.6,carrot
3.9,13.8,20.3,carrot
3.2,12.0,20.4,carrot
1.2,14.2,20.3,carrot
0.8,13.3,19.5,carrot
0.8,13.9,19.9,carrot
2.1,13.4,20.2,carrot
4.0,14.0,19.5,carrot
3.9,12.7,20.2,carrot
1.9,12.0,19.5,carrot
2.1,13.9,20.1,carrot
1.7,13.6,19.5,carrot
3.3,13.9,20.3,carrot
2.2,13.3,20.1,carrot
3.2,13.0,19.6,carrot
3.7,13.5,20.5,carrot
1.5,14.0,19.5,carrot
3.9,13.2,19.6,carrot
4.0,12.1,19.9,carrot
4.0,13.2,20.2,carrot
2.9,14.2,20.3,carrot
3.2,12.1,19.9,carrot
0.6,14.0,20.5,carrot
0.8,12.0,19.6,carrot
3.4,13.3,20.2,carrot
3.5,13.5,19.9,carrot
1.6,14.5,19.9,carrot
0.8,13.6,20.1,carrot
2.5,12.9,19.5,carrot
1.6,13.0,20.1,carrot
3.9,12.9,20.3,carrot
3.8,13.5,20.3,carrot
3.3,12.0,20.5,carrot
3.5,12.5,20.4,carrot
0.1,13.2,20.0,carrot
3.9,14.0,20.3,carrot
2.8,14.5,20.2,carrot
0.6,12.8,20.0,carrot
0.6,13.9,19.9,carrot
2.9,12.2,19.6,carrot
3.7,14.4,19.7,carrot
3.8,12.0,19.7,carrot
3.8,14.1,19.8,carrot
1.4,12.1,20.3,carrot
0.6,12.5,20.4,carrot
3.2,13.8,19.7,carrot
1.1,12.4,20.4,carrot
2.3,13.8,20.0,carrot
4.0,14.3,20.1,carrot
0.6,14.2,20.2,carrot
3.7,12.4,19.5,carrot
3.5,13.4,20.4,carrot
11.9,2.5,5.1,watermelon
11.9,1.9,5.5,watermelon
10.5,3.0,5.0,watermelon
11.4,0.8,5.0,watermelon
9.3,2.2,5.2,watermelon
8.0,2.6,5.5,watermelon
8.5,2.7,4.5,watermelon
8.5,2.2,5.3,watermelon
8.2,2.2,4.5,watermelon
11.8,1.3,5.4,watermelon
8.3,2.5,5.3,watermelon
8.6,1.5,4.7,watermelon
10.1,1.0,4.7,watermelon
11.9,0.9,5.0,watermelon
10.4,1.7,4.6,watermelon
9.5,1.2,5.1,watermelon
10.2,1.4,5.2,watermelon
10.9,2.1,5.5,watermelon
8.1,1.8,5.0,watermelon
10.3,1.7,5.1,watermelon
10.5,1.4,5.0,watermelon
9.7,0.8,5.2,watermelon
12.0,1.9,4.9,watermelon
9.5,1.6,5.5,watermelon
8.3,2.9,5.2,watermelon
8.3,0.9,4.5,watermelon
9.1,2.1,5.0,watermelon
11.6,0.5,5.4,watermelon
11.2,2.8,5.4,watermelon
8.8,2.9,5.1,watermelon
11.8,1.5,4.5,watermelon
9.2,2.1,4.8,watermelon
10.6,1.4,4.5,watermelon
9.9,0.5,4.7,watermelon
9.8,0.8,5.1,watermelon
10.8,2.2,4.6,watermelon
11.9,0.7,5.5,watermelon
11.7,2.7,4.8,watermelon
10.9,1.0,5.3,watermelon
8.0,1.6,4.6,watermelon
10.0,1.8,5.2,watermelon
9.1,0.7,5.3,watermelon
8.6,0.6,5.3,watermelon
10.7,0.5,5.2,watermelon
10.3,1.6,4.9,watermelon
10.1,2.0,4.8,watermelon
8.5,2.5,4.7,watermelon
8.4,0.7,5.1,watermelon
10.2,2.8,5.4,watermelon
9.8,2.5,5.2,watermelon
9.7,2.5,5.0,watermelon
9.0,1.6,4.5,watermelon
9.5,1.2,4.6,watermelon
8.2,2.3,4.9,watermelon
8.2,2.5,5.1,watermelon
11.0,2.8,4.6,watermelon
11.8,2.1,5.1,watermelon
12.0,2.0,4.5,watermelon
9.1,0.7,5.2,watermelon
8.1,0.6,5.5,watermelon
10.1,1.3,5.4,watermelon
10.1,1.7,5.5,watermelon
11.1,0.6,5.3,watermelon
10.7,1.0,4.9,watermelon
11.5,1.1,4.6,watermelon
8.4,2.5,5.2,watermelon
12.0,0.7,4.7,watermelon
9.1,1.2,4.6,watermelon
8.9,2.2,5.2,watermelon
11.3,1.9,4.6,watermelon
9.7,2.2,5.0,watermelon
11.7,3.0,5.0,watermelon
9.0,1.4,5.2,watermelon
10.4,2.3,4.7,watermelon
8.1,1.6,4.5,watermelon
8.8,0.5,4.7,watermelon
9.2,0.7,4.5,watermelon
8.1,1.8,5.0,watermelon
11.1,0.5,5.5,watermelon
10.8,2.3,5.1,watermelon
11.3,3.0,5.0,watermelon
8.3,1.0,5.3,watermelon
10.1,1.1,5.1,watermelon
11.4,2.1,5.5,watermelon
9.9,0.6,4.5,watermelon
9.2,2.0,5.5,watermelon
9.2,0.7,4.8,watermelon
9.1,2.4,5.5,watermelon
11.0,2.1,5.4,watermelon
11.2,2.5,5.1,watermelon
8.9,2.5,5.4,watermelon
10.0,1.0,5.3,watermelon
8.3,2.2,5.4,watermelon
9.5,1.4,5.0,watermelon
11.9,3.0,4.9,watermelon
9.7,1.2,4.7,watermelon
11.0,0.7,4.5,watermelon
9.6,1.8,5.0,watermelon
8.3,2.3,5.5,watermelon
12.0,2.4,4.7,watermelon
11.5,1.7,5.5,muskmelon
11.4,2.7,4.8,muskmelon
10.1,2.5,5.2,muskmelon
11.8,1.8,5.2,muskmelon
9.5,2.6,4.5,muskmelon
8.1,2.5,4.9,muskmelon
11.7,2.4,5.3,muskmelon
11.4,3.0,5.1,muskmelon
11.3,0.6,5.2,muskmelon
10.8,2.6,5.2,muskmelon
8.1,3.0,4.8,muskmelon
11.5,0.9,5.2,muskmelon
8.3,0.7,4.5,muskmelon
8.4,2.1,5.5,muskmelon
10.9,2.6,4.5,muskmelon
9.5,2.7,5.5,muskmelon
11.9,0.5,5.5,muskmelon
11.0,1.4,5.1,muskmelon
8.2,1.8,4.8,muskmelon
8.7,1.4,4.8,muskmelon
8.5,0.9,5.3,muskmelon
10.0,0.6,5.3,muskmelon
10.7,1.2,4.6,muskmelon
9.1,1.3,4.7,muskmelon
10.2,2.5,5.0,muskmelon
11.7,2.5,5.3,muskmelon
8.5,2.1,5.2,muskmelon
10.4,2.5,5.5,muskmelon
10.2,2.4,5.4,muskmelon
11.6,2.5,5.0,muskmelon
10.0,1.7,4.8,muskmelon
11.0,2.5,5.4,muskmelon
10.4,2.5,5.1,muskmelon
10.7,1.1,5.4,muskmelon
9.8,2.6,5.2,muskmelon
8.8,1.7,5.2,muskmelon
8.7,2.5,4.6,muskmelon
12.0,0.8,4.6,muskmelon
9.5,1.3,4.6,muskmelon
10.8,2.2,4.7,muskmelon
8.2,1.3,5.2,muskmelon
12.0,2.3,5.5,muskmelon
11.0,2.2,4.7,muskmelon
9.5,2.3,4.5,muskmelon
10.6,1.0,4.9,muskmelon
9.9,1.2,5.2,muskmelon
10.6,2.0,5.1,muskmelon
8.3,1.1,5.3,muskmelon
11.7,1.9,5.5,muskmelon
9.8,2.6,4.9,muskmelon
11.3,2.0,4.8,muskmelon
10.1,1.7,4.7,muskmelon
9.8,0.7,4.5,muskmelon
9.3,2.2,4.8,muskmelon
9.5,2.1,4.7,muskmelon
10.9,1.2,4.8,muskmelon
11.8,1.2,4.7,muskmelon
10.0,1.4,4.9,muskmelon
8.9,0.9,4.7,muskmelon
9.5,1.6,4.6,muskmelon
9.5,0.7,4.5,muskmelon
8.7,0.6,4.5,muskmelon
9.3,2.0,5.0,muskmelon
8.4,2.9,4.9,muskmelon
11.1,0.5,4.7,muskmelon
11.1,0.5,5.2,muskmelon
11.1,1.5,5.4,muskmelon
8.9,1.1,4.7,muskmelon
11.0,1.5,4.8,muskmelon
9.5,3.0,5.2,muskmelon
11.5,1.2,5.2,muskmelon
12.0,2.5,5.0,muskmelon
10.2,1.1,4.5,muskmelon
9.4,0.5,5.5,muskmelon
8.4,1.8,4.6,muskmelon
10.7,2.2,5.4,muskmelon
8.0,1.8,5.2,muskmelon
8.6,1.8,4.5,muskmelon
11.3,2.8,4.8,muskmelon
11.5,1.8,5.3,muskmelon
8.2,2.0,5.4,muskmelon
9.8,2.2,4.7,muskmelon
11.7,2.5,5.4,muskmelon
8.3,1.5,4.9,muskmelon
12.0,1.6,5.1,muskmelon
11.1,0.5,5.0,muskmelon
8.5,2.1,4.7,muskmelon
9.0,2.3,5.4,muskmelon
9.9,2.9,5.5,muskmelon
10.2,1.1,4.7,muskmelon
8.0,1.8,5.1,muskmelon
8.7,2.1,5.2,muskmelon
11.4,0.8,5.2,muskmelon
9.9,0.6,4.6,muskmelon
8.9,2.5,5.0,muskmelon
9.6,1.3,5.5,muskmelon
8.2,2.6,4.7,muskmelon
10.6,2.1,5.2,muskmelon
9.0,1.5,5.2,muskmelon
10.6,1.6,5.4,muskmelon
2.4,12.8,19.6,rice
0.7,14.4,19.7,rice
1.4,12.8,20.5,rice
0.8,12.0,20.1,rice
2.0,12.9,20.1,rice
3.2,13.7,20.4,rice
2.7,13.9,20.5,rice
0.0,12.3,20.5,rice
2.2,14.4,19.6,rice
0.1,12.4,19.9,rice
3.0,12.2,19.7,rice
2.9,12.1,19.6,rice
1.3,12.6,20.4,rice
0.9,13.9,19.9,rice
0.0,13.3,20.0,rice
3.0,14.3,19.9,rice
3.6,14.0,19.8,rice
3.7,13.7,19.9,rice
3.3,12.1,20.3,rice
0.7,14.4,19.5,rice
3.5,12.8,20.5,rice
2.9,12.8,19.8,rice
0.2,14.3,19.6,rice
3.4,14.0,19.8,rice
2.9,14.4,20.4,rice
3.2,14.1,20.3,rice
1.3,14.4,19.7,rice
2.5,14.3,19.8,rice
0.9,13.7,20.0,rice
0.6,14.4,19.8,rice
3.7,12.6,19.6,rice
0.2,12.0,20.3,rice
1.1,14.3,19.7,rice
1.0,14.1,20.1,rice
2.4,14.2,20.2,rice
2.3,13.8,19.5,rice
1.8,12.5,20.4,rice
1.3,12.1,19.6,rice
2.6,12.2,20.2,rice
2.8,12.3,20.2,rice
2.6,12.1,20.1,rice
2.1,13.7,19.6,rice
2.1,13.5,19.8,rice
0.5,14.4,20.5,rice
0.2,12.3,20.5,rice
1.5,13.3,19.9,rice
3.1,13.0,19.8,rice
2.5,14.3,20.0,rice
1.6,14.3,20.4,rice
1.9,12.2,20.2,rice
1.0,12.5,19.6,rice
2.0,13.9,20.2,rice
2.8,12.3,19.8,rice
2.8,13.6,20.0,rice
0.2,13.1,19.9,rice
0.2,14.0,19.7,rice
2.7,13.8,20.1,rice
3.0,12.7,20.4,rice
3.2,14.5,20.3,rice
2.9,13.9,20.5,rice
2.6,12.6,19.5,rice
4.0,13.6,20.2,rice
0.6,12.4,20.0,rice
3.5,13.8,20.0,rice
1.7,13.6,19.6,rice
3.3,13.4,20.5,rice
1.6,14.3,19.7,rice
2.7,12.0,20.0,rice
2.9,14.5,20.5,rice
0.3,14.1,19.7,rice
1.5,12.3,20.4,rice
0.5,13.6,19.5,rice
1.0,13.6,20.4,rice
0.7,14.1,19.5,rice
0.2,12.9,20.1,rice
2.9,13.8,19.7,rice
3.0,13.7,20.0,rice
2.9,13.2,20.4,rice
1.4,13.9,19.7,rice
1.8,12.5,20.3,rice
3.3,14.3,20.4,rice
4.0,14.4,19.6,rice
0.9,14.3,19.7,rice
3.8,13.5,20.3,rice
2.8,13.0,19.6,rice
3.5,14.2,20.3,rice
1.2,12.9,20.5,rice
0.1,13.5,20.3,rice
0.0,14.5,20.5,rice
3.1,12.1,20.1,rice
3.5,13.1,20.3,rice
2.9,14.0,19.5,rice
3.3,13.8,19.8,rice
1.4,14.0,19.7,rice
3.5,14.5,19.5,rice
4.0,12.0,19.7,rice
2.5,13.2,19.8,rice
3.1,13.7,19.6,rice
3.6,14.4,19.6,rice
1.0,14.0,19.7,rice
2.2,3.0,1.2,orange
3.7,0.6,1.3,orange
2.7,1.3,0.6,orange
0.7,1.6,0.9,orange
2.0,0.7,0.9,orange
2.6,2.7,1.0,orange
0.5,2.3,1.5,orange
0.0,1.8,1.4,orange
3.9,2.4,1.4,orange
1.3,2.3,0.6,orange
2.1,1.7,1.5,orange
3.3,1.2,0.8,orange
0.6,0.9,1.2,orange
1.9,0.7,1.0,orange
2.4,1.8,0.6,orange
0.9,1.1,0.8,orange
3.1,0.8,0.7,orange
2.2,1.7,0.5,orange
1.3,0.5,0.8,orange
1.6,0.8,0.9,orange
0.4,1.3,0.6,orange
0.0,2.5,1.4,orange
0.8,0.7,1.0,orange
0.4,2.3,0.5,orange
3.3,1.4,0.8,orange
3.0,0.7,1.5,orange
2.1,2.9,1.2,orange
1.1,1.4,0.5,orange
0.9,0.8,1.5,orange
0.5,1.8,1.4,orange
2.9,2.5,1.4,orange
3.3,1.2,1.5,orange
0.8,1.6,0.6,orange
1.5,1.4,0.8,orange
1.6,0.7,0.8,orange
0.0,1.2,0.7,orange
0.5,2.5,0.6,orange
0.6,0.8,1.1,orange
1.0,0.5,0.5,orange
0.1,1.7,0.6,orange
0.1,3.0,1.0,orange
0.0,2.3,1.5,orange
2.4,2.7,0.9,orange
3.6,1.1,1.3,orange
4.0,2.1,0.8,orange
4.0,2.2,0.6,orange
3.2,1.8,1.3,orange
0.9,1.0,1.0,orange
1.3,1.6,0.8,orange
1.5,0.9,1.1,orange
2.9,1.1,0.5,orange
0.1,1.5,0.9,orange
1.8,0.5,1.1,orange
1.4,2.2,0.9,orange
3.3,1.5,0.7,orange
0.4,0.6,0.7,orange
1.7,1.6,1.4,orange
1.2,2.0,1.0,orange
3.4,2.9,0.8,orange
3.9,2.8,1.0,orange
3.1,2.5,1.2,orange
1.2,0.6,0.8,orange
1.2,2.9,1.3,orange
2.6,1.1,1.1,orange
1.9,2.4,1.5,orange
3.9,2.1,0.9,orange
1.6,2.9,1.3,orange
3.6,2.9,1.3,orange
3.7,2.3,1.2,orange
3.9,0.9,1.5,orange
3.1,0.5,1.4,orange
1.8,1.2,0.8,orange
2.0,2.0,1.0,orange
0.5,0.8,0.5,orange
2.0,0.8,1.2,orange
2.5,2.1,1.1,orange
1.4,1.9,1.4,orange
3.7,1.8,1.2,orange
2.6,1.5,0.6,orange
1.3,2.2,0.5,orange
3.2,2.5,0.9,orange
1.9,0.7,0.9,orange
2.8,0.7,0.9,orange
2.4,3.0,1.1,orange
0.7,1.7,1.0,orange
1.8,2.3,0.8,orange
0.7,2.0,1.2,orange
2.0,2.3,1.1,orange
1.8,1.4,1.1,orange
3.4,1.1,1.0,orange
2.0,2.9,1.0,orange
3.7,2.4,1.3,orange
1.2,0.8,1.0,orange
3.4,1.0,1.4,orange
0.6,1.3,0.9,orange
2.7,3.0,0.5,orange
1.3,0.8,1.2,orange
0.6,0.7,0.7,orange
4.0,1.7,1.5,orange
3.1,2.6,0.9,orange
6.1,6.8,5.0,papaya
5.8,4.6,4.5,papaya
4.5,4.7,5.5,papaya
3.9,6.5,5.3,papaya
3.1,6.8,4.5,papaya
7.0,6.8,4.5,papaya
6.8,6.2,5.0,papaya
3.4,6.5,4.7,papaya
3.8,6.8,5.4,papaya
6.9,6.4,4.7,papaya
5.8,5.1,4.7,papaya
5.9,4.7,5.3,papaya
4.4,6.4,5.4,papaya
5.6,5.7,4.8,papaya
6.9,6.0,5.4,papaya
5.6,5.8,4.9,papaya
4.9,5.5,5.3,papaya
3.8,5.1,5.2,papaya
5.4,6.5,4.7,papaya
5.7,5.7,5.1,papaya
3.9,5.2,5.3,papaya
5.8,6.7,4.5,papaya
6.1,6.4,5.2,papaya
3.4,6.2,5.5,papaya
3.1,4.8,4.5,papaya
4.7,4.6,5.2,papaya
3.2,6.8,5.2,papaya
3.6,5.9,4.6,papaya
6.1,5.1,5.1,papaya
7.0,5.4,4.6,papaya
4.4,5.6,4.9,papaya
3.4,6.8,5.1,papaya
5.0,5.9,4.7,papaya
3.9,7.0,5.2,papaya
3.4,6.1,4.9,papaya
4.4,6.0,5.5,papaya
3.1,6.2,5.2,papaya
6.5,6.2,5.1,papaya
4.4,5.7,5.3,papaya
5.0,4.7,4.8,papaya
4.3,5.0,4.8,papaya
6.0,4.6,5.3,papaya
7.0,6.8,5.5,papaya
5.9,6.2,5.2,papaya
6.0,5.8,5.1,papaya
4.2,6.0,4.7,papaya
3.5,6.6,4.7,papaya
3.4,6.5,4.8,papaya
3.6,5.4,4.6,papaya
3.9,6.4,5.2,papaya
3.7,5.2,4.7,papaya
3.3,4.7,4.6,papaya
3.4,4.8,4.8,papaya
4.9,5.4,5.0,papaya
4.0,6.5,4.9,papaya
6.8,5.2,4.9,papaya
5.0,4.6,5.2,papaya
6.5,6.3,5.0,papaya
4.0,4.9,4.7,papaya
4.2,5.3,4.8,papaya
4.9,5.5,5.1,papaya
5.9,6.2,4.9,papaya
6.3,5.8,4.7,papaya
7.0,6.5,5.2,papaya
6.3,5.0,5.2,papaya
4.0,6.4,4.7,papaya
6.3,5.8,5.0,papaya
4.5,5.8,4.9,papaya
6.6,6.9,4.7,papaya
5.4,6.7,5.2,papaya
6.9,6.7,5.2,papaya
6.7,6.8,4.9,papaya
4.5,5.7,4.7,papaya
5.6,5.0,5.2,papaya
7.0,5.0,5.3,papaya
4.4,4.7,4.5,papaya
5.0,6.0,4.7,papaya
5.2,5.1,5.3,papaya
3.5,6.8,4.5,papaya
6.8,6.9,5.2,papaya
3.2,5.5,5.2,papaya
3.2,5.5,5.1,papaya
4.8,6.2,4.7,papaya
3.9,6.9,5.3,papaya
4.9,6.1,4.5,papaya
4.8,5.7,5.4,papaya
6.9,6.6,4.9,papaya
5.3,5.5,5.5,papaya
3.8,6.1,5.2,papaya
5.7,6.4,5.5,papaya
5.1,5.7,5.5,papaya
5.6,6.5,4.5,papaya
5.4,6.6,5.2,papaya
5.8,5.5,4.7,papaya
6.8,7.0,5.4,papaya
4.2,5.9,5.5,papaya
4.3,6.4,4.7,papaya
3.5,6.7,4.9,papaya
5.6,5.9,5.5,papaya
3.9,6.4,5.3,papaya
1.8,3.0,2.9,coconut
3.7,2.3,2.8,coconut
1.3,2.8,3.3,coconut
0.2,2.1,3.5,coconut
1.0,1.8,3.5,coconut
0.7,1.1,3.2,coconut
3.9,0.5,3.1,coconut
3.4,0.6,2.7,coconut
3.1,3.0,2.9,coconut
2.5,0.7,3.5,coconut
1.6,1.8,2.6,coconut
2.6,1.0,3.3,coconut
2.7,0.8,3.2,coconut
3.7,1.8,3.0,coconut
1.9,1.5,3.4,coconut
0.0,1.9,3.3,coconut
3.1,2.0,2.6,coconut
0.9,1.7,3.2,coconut
2.2,1.1,2.9,coconut
3.1,0.6,2.6,coconut
3.4,0.6,3.0,coconut
2.4,0.6,3.2,coconut
0.1,0.8,2.6,coconut
3.1,1.3,3.3,coconut
1.0,0.9,2.8,coconut
3.6,2.7,2.6,coconut
3.8,2.4,3.3,coconut
1.1,0.6,2.5,coconut
1.6,1.4,3.0,coconut
3.3,1.4,3.5,coconut
1.6,0.6,2.9,coconut
3.2,1.1,3.1,coconut
3.8,1.4,3.0,coconut
0.8,0.6,3.3,coconut
2.3,0.6,3.3,coconut
2.9,2.5,3.5,coconut
2.4,1.4,3.3,coconut
3.2,1.2,3.0,coconut
3.0,2.5,3.1,coconut
1.4,2.1,3.5,coconut
2.7,2.2,2.9,coconut
4.0,0.5,2.9,coconut
1.7,1.1,3.2,coconut
3.0,3.0,3.5,coconut
2.8,1.0,3.0,coconut
3.9,0.7,2.9,coconut
3.2,2.0,3.5,coconut
0.7,1.5,3.2,coconut
2.9,1.7,2.9,coconut
3.4,1.5,3.4,coconut
1.4,2.3,2.5,coconut
1.8,1.9,2.9,coconut
0.7,2.1,3.5,coconut
2.4,2.7,3.4,coconut
3.9,2.9,2.9,coconut
2.9,0.8,2.8,coconut
1.0,2.4,2.7,coconut
0.0,2.9,3.2,coconut
3.2,1.1,3.1,coconut
3.7,1.0,3.2,coconut
2.0,2.9,2.7,coconut
3.1,2.9,3.5,coconut
1.7,3.0,2.7,coconut
0.1,1.2,3.0,coconut
0.6,1.3,2.9,coconut
1.5,2.8,3.2,coconut
2.7,2.4,2.9,coconut
0.3,2.3,3.0,coconut
0.8,2.6,2.6,coconut
2.0,2.8,2.6,coconut
2.6,1.8,2.7,coconut
0.1,0.6,3.5,coconut
2.7,3.0,3.1,coconut
2.3,0.7,3.4,coconut
0.0,2.6,3.1,coconut
3.8,0.6,2.5,coconut
2.5,1.2,2.6,coconut
4.0,0.5,3.2,coconut
0.0,1.9,3.1,coconut
2.6,0.9,3.2,coconut
3.5,3.0,3.4,coconut
1.9,3.0,3.0,coconut
3.1,1.3,3.3,coconut
1.7,2.9,2.6,coconut
0.2,3.0,3.0,coconut
3.0,1.3,2.5,coconut
0.8,1.5,3.3,coconut
1.8,1.2,3.5,coconut
0.8,2.8,3.0,coconut
4.0,2.2,2.9,coconut
2.7,1.0,3.3,coconut
2.1,2.0,3.1,coconut
0.3,0.9,3.5,coconut
2.2,1.6,2.7,coconut
2.7,0.8,3.0,coconut
2.2,0.8,3.3,coconut
2.8,2.7,3.2,coconut
2.3,2.1,2.6,coconut
3.7,0.5,3.4,coconut
1.9,2.6,2.9,coconut
13.3,4.7,2.4,cotton
13.6,3.6,2.0,cotton
10.4,4.7,1.8,cotton
13.3,4.7,2.3,cotton
12.6,3.8,2.3,cotton
12.6,5.0,1.9,cotton
11.3,4.1,2.0,cotton
12.1,4.5,2.2,cotton
12.1,4.7,1.6,cotton
12.9,6.0,2.2,cotton
10.7,4.5,2.5,cotton
12.2,5.9,1.8,cotton
14.0,3.8,1.5,cotton
10.2,4.9,2.1,cotton
11.1,4.0,2.5,cotton
13.1,3.5,1.8,cotton
13.5,4.3,1.6,cotton
10.0,4.6,1.8,cotton
12.3,3.9,2.4,cotton
11.7,5.6,1.5,cotton
12.1,3.6,2.4,cotton
10.1,5.8,1.8,cotton
10.7,4.2,2.4,cotton
10.0,4.1,2.2,cotton
12.5,3.9,2.1,cotton
10.5,6.0,2.3,cotton
10.2,4.6,1.9,cotton
13.1,4.9,2.2,cotton
13.9,3.5,1.5,cotton
10.8,3.6,1.9,cotton
11.8,4.5,2.3,cotton
10.7,5.1,2.2,cotton
12.5,6.0,1.7,cotton
11.3,3.7,2.0,cotton
13.1,5.2,1.6,cotton
11.5,4.8,1.6,cotton
11.3,3.8,2.5,cotton
11.1,4.1,1.8,cotton
11.1,5.3,1.9,cotton
12.2,4.8,1.6,cotton
10.8,4.6,1.7,cotton
13.2,4.1,2.2,cotton
10.3,4.2,1.7,cotton
13.3,5.0,2.5,cotton
12.7,3.7,1.8,cotton
11.0,3.9,2.5,cotton
13.1,3.8,1.9,cotton
10.8,3.8,2.4,cotton
12.2,4.0,1.7,cotton
11.1,5.0,1.5,cotton
14.0,4.0,1.7,cotton
10.0,4.0,2.0,cotton
12.3,5.0,1.6,cotton
10.7,3.6,2.1,cotton
11.8,5.0,1.9,cotton
10.3,5.1,2.0,cotton
13.3,5.7,1.9,cotton
12.9,4.7,2.0,cotton
11.6,5.2,1.9,cotton
11.4,4.0,2.3,cotton
13.1,6.0,1.7,cotton
10.7,4.3,1.8,cotton
12.3,4.4,2.1,cotton
11.2,4.9,2.5,cotton
11.9,4.4,1.5,cotton
13.0,5.9,1.9,cotton
12.7,5.3,2.4,cotton
13.4,5.2,1.8,cotton
10.9,3.6,1.8,cotton
10.0,4.8,1.7,cotton
13.2,5.2,1.9,cotton
10.2,3.7,2.5,cotton
11.1,3.9,2.2,cotton
11.7,5.1,1.5,cotton
13.6,3.6,2.4,cotton
13.4,5.6,1.8,cotton
11.2,5.4,1.5,cotton
10.5,5.6,1.5,cotton
14.0,4.5,1.5,cotton
12.6,4.6,2.5,cotton
10.6,4.9,2.4,cotton
12.1,5.3,1.9,cotton
10.8,6.0,1.7,cotton
11.6,5.6,1.7,cotton
10.0,5.2,1.9,cotton
12.9,4.3,1.6,cotton
11.8,4.4,2.3,cotton
11.7,4.3,2.5,cotton
12.6,3.7,2.1,cotton
12.0,4.8,1.6,cotton
10.2,4.5,1.6,cotton
13.1,5.6,2.0,cotton
11.4,4.0,1.7,cotton
10.1,3.7,1.8,cotton
10.6,4.6,2.0,cotton
11.3,3.8,2.0,cotton
10.2,5.3,2.1,cotton
11.0,3.9,1.8,cotton
10.7,5.8,1.5,cotton
12.0,6.0,1.5,cotton
8.9,4.7,3.8,jute
6.0,3.7,3.9,jute
6.3,4.1,4.5,jute
8.6,4.0,3.9,jute
9.6,4.1,4.0,jute
10.0,3.5,3.6,jute
6.3,3.7,4.3,jute
7.0,4.3,4.0,jute
6.7,5.5,4.4,jute
7.4,4.0,4.0,jute
8.9,5.3,4.4,jute
7.4,4.6,4.5,jute
8.9,4.1,3.8,jute
6.0,5.5,4.0,jute
6.7,4.3,3.8,jute
7.0,3.8,3.5,jute
7.4,4.9,3.8,jute
9.0,4.0,3.9,jute
8.2,3.5,4.4,jute
7.3,4.5,3.7,jute
8.5,5.3,3.8,jute
8.1,5.6,3.6,jute
8.4,5.5,3.8,jute
8.0,4.5,4.2,jute
7.6,5.4,4.5,jute
7.6,5.6,3.9,jute
8.1,4.0,4.5,jute
7.6,4.4,4.5,jute
6.9,4.7,4.0,jute
8.2,4.0,4.5,jute
6.9,5.7,3.5,jute
8.1,3.6,3.8,jute
6.7,6.0,3.8,jute
7.2,5.1,4.0,jute
6.5,3.9,4.5,jute
7.8,5.0,4.3,jute
7.7,5.2,4.1,jute
8.9,5.2,4.2,jute
6.2,4.9,3.7,jute
9.0,4.8,4.5,jute
6.6,4.7,3.6,jute
8.0,5.2,3.9,jute
8.9,5.2,4.5,jute
7.7,5.1,4.4,jute
9.4,3.7,4.1,jute
7.5,4.1,3.5,jute
6.0,5.5,3.6,jute
6.2,5.6,3.5,jute
8.4,4.0,4.2,jute
10.0,5.6,4.0,jute
7.5,5.6,4.4,jute
7.8,4.6,4.2,jute
8.2,4.8,3.6,jute
10.0,5.8,4.1,jute
8.8,5.0,4.0,jute
6.7,4.1,4.0,jute
7.2,4.2,4.3,jute
8.9,4.0,4.3,jute
8.9,5.7,4.3,jute
6.1,4.1,4.4,jute
7.9,4.5,4.3,jute
8.4,4.0,4.3,jute
9.8,4.3,3.5,jute
7.5,3.6,4.4,jute
8.9,5.8,3.5,jute
9.1,4.1,3.7,jute
7.7,4.8,3.6,jute
6.6,5.8,3.5,jute
6.2,5.9,4.1,jute
8.2,3.5,3.5,jute
6.1,4.1,3.5,jute
9.9,5.7,3.8,jute
7.0,4.2,4.3,jute
9.0,5.9,3.5,jute
7.3,4.3,4.2,jute
6.7,4.6,4.4,jute
8.4,3.7,4.2,jute
7.2,4.1,3.6,jute
7.1,5.6,3.7,jute
6.4,5.3,3.8,jute
6.5,5.4,3.9,jute
6.0,5.8,3.7,jute
8.6,3.9,4.3,jute
9.0,5.0,4.4,jute
9.1,3.8,3.6,jute
8.7,4.8,3.8,jute
7.2,4.1,3.6,jute
7.1,5.4,3.5,jute
8.2,4.6,4.1,jute
7.1,5.2,4.3,jute
8.0,4.3,4.3,jute
7.7,5.5,4.3,jute
9.5,5.7,4.1,jute
6.3,4.7,3.5,jute
9.3,4.3,3.8,jute
8.7,4.4,4.3,jute
8.8,5.2,3.9,jute
9.0,3.9,3.7,jute
9.0,3.9,4.3,jute
8.4,3.8,4.3,jute
9.1,2.1,2.6,potato
10.7,2.1,2.6,potato
8.3,3.8,3.5,potato
10.8,2.4,3.1,potato
11.6,2.8,3.4,potato
11.6,2.3,2.5,potato
10.9,3.1,2.7,potato
8.9,2.5,3.4,potato
11.8,1.8,3.2,potato
11.1,3.2,3.4,potato
8.4,3.6,2.8,potato
8.5,3.3,2.5,potato
9.9,1.5,2.7,potato
8.1,3.0,3.1,potato
9.5,3.9,2.9,potato
8.1,3.4,3.0,potato
8.0,1.5,2.8,potato
10.4,2.0,2.6,potato
10.9,2.9,2.8,potato
10.0,3.2,2.6,potato
10.0,2.4,2.8,potato
8.3,2.1,2.8,potato
12.0,2.3,2.8,potato
10.4,2.6,3.0,potato
10.8,3.3,3.1,potato
9.1,2.5,2.6,potato
8.6,2.6,2.7,potato
9.8,1.8,2.7,potato
11.1,2.7,3.1,potato
8.4,3.9,3.5,potato
9.8,2.7,2.7,potato
11.8,2.1,3.4,potato
10.3,2.7,3.1,potato
8.2,2.4,3.3,potato
8.6,3.1,3.5,potato
8.8,3.5,3.5,potato
8.4,2.7,2.9,potato
12.0,4.0,3.3,potato
10.6,4.0,3.0,potato
11.3,2.1,3.3,potato
11.7,3.4,2.5,potato
8.0,3.0,2.5,potato
8.8,2.1,2.7,potato
11.3,3.3,3.4,potato
8.7,2.3,2.8,potato
11.3,1.5,2.9,potato
9.8,2.9,3.0,potato
9.7,2.9,2.7,potato
8.5,3.5,3.2,potato
8.2,2.9,3.5,potato
10.3,3.3,2.5,potato
11.2,1.7,2.8,potato
9.9,1.9,3.3,potato
12.0,2.0,3.4,potato
11.4,2.7,2.8,potato
10.0,4.0,3.5,potato
10.8,3.5,2.5,potato
11.5,3.1,3.0,potato
8.7,2.8,3.0,potato
8.2,2.4,2.6,potato
9.4,2.6,2.7,potato
8.7,2.8,3.5,potato
11.8,4.0,3.5,potato
8.7,3.8,2.9,potato
9.2,4.0,3.0,potato
9.7,2.2,2.6,potato
9.9,4.0,3.2,potato
8.9,2.8,3.3,potato
11.2,3.9,2.9,potato
11.1,2.8,2.6,potato
11.4,2.0,2.6,potato
11.7,2.6,3.0,potato
11.1,2.9,3.1,potato
11.9,3.0,2.8,potato
11.6,4.0,3.3,potato
9.5,3.7,3.5,potato
8.6,4.0,3.3,potato
11.7,3.7,3.2,potato
10.5,1.8,3.5,potato
10.9,2.3,2.5,potato
8.0,1.8,3.1,potato
10.1,3.1,2.6,potato
10.3,3.3,3.3,potato
9.3,2.6,2.7,potato
10.4,3.5,2.8,potato
11.6,3.6,2.5,potato
10.7,3.8,2.9,potato
10.1,3.3,3.3,potato
10.7,3.1,3.1,potato
9.9,1.6,3.0,potato
10.3,4.0,3.0,potato
11.8,3.1,3.4,potato
10.6,2.1,3.5,potato
11.6,3.8,3.4,potato
9.7,3.5,2.6,potato
10.7,3.4,3.2,potato
9.9,1.5,2.7,potato
11.8,3.3,3.0,potato
11.7,3.2,3.4,potato
10.4,1.8,3.0,potato
...@@ -1199,106 +1199,106 @@ ...@@ -1199,106 +1199,106 @@
22,18,33,mango 22,18,33,mango
31,20,30,mango 31,20,30,mango
18,26,31,mango 18,26,31,mango
24,130,195,grapes 24,130,195,carrot
13,144,204,grapes 13,144,204,carrot
22,123,205,grapes 22,123,205,carrot
36,125,196,grapes 36,125,196,carrot
24,131,196,grapes 24,131,196,carrot
2,123,198,grapes 2,123,198,carrot
35,140,197,grapes 35,140,197,carrot
11,122,195,grapes 11,122,195,carrot
6,123,203,grapes 6,123,203,carrot
17,134,204,grapes 17,134,204,carrot
25,130,197,grapes 25,130,197,carrot
27,145,205,grapes 27,145,205,carrot
9,122,201,grapes 9,122,201,carrot
16,139,203,grapes 16,139,203,carrot
32,141,204,grapes 32,141,204,carrot
22,138,195,grapes 22,138,195,carrot
31,144,202,grapes 31,144,202,carrot
3,136,205,grapes 3,136,205,carrot
28,122,197,grapes 28,122,197,carrot
4,136,204,grapes 4,136,204,carrot
39,145,201,grapes 39,145,201,carrot
38,132,197,grapes 38,132,197,carrot
36,133,198,grapes 36,133,198,carrot
25,121,201,grapes 25,121,201,carrot
15,125,199,grapes 15,125,199,carrot
24,140,205,grapes 24,140,205,carrot
13,132,203,grapes 13,132,203,carrot
5,126,197,grapes 5,126,197,carrot
30,120,200,grapes 30,120,200,carrot
23,142,197,grapes 23,142,197,carrot
26,135,203,grapes 26,135,203,carrot
7,126,203,grapes 7,126,203,carrot
32,139,198,grapes 32,139,198,carrot
9,141,202,grapes 9,141,202,carrot
20,142,196,grapes 20,142,196,carrot
32,129,201,grapes 32,129,201,carrot
3,134,199,grapes 3,134,199,carrot
38,138,204,grapes 38,138,204,carrot
14,131,198,grapes 14,131,198,carrot
20,122,204,grapes 20,122,204,carrot
40,126,201,grapes 40,126,201,carrot
36,128,204,grapes 36,128,204,carrot
11,132,197,grapes 11,132,197,carrot
0,137,195,grapes 0,137,195,carrot
19,123,200,grapes 19,123,200,carrot
31,136,197,grapes 31,136,197,carrot
4,134,200,grapes 4,134,200,carrot
39,139,201,grapes 39,139,201,carrot
8,127,196,grapes 8,127,196,carrot
39,138,203,grapes 39,138,203,carrot
32,120,204,grapes 32,120,204,carrot
12,142,203,grapes 12,142,203,carrot
8,133,195,grapes 8,133,195,carrot
8,139,199,grapes 8,139,199,carrot
21,134,202,grapes 21,134,202,carrot
40,140,195,grapes 40,140,195,carrot
39,127,202,grapes 39,127,202,carrot
19,120,195,grapes 19,120,195,carrot
21,139,201,grapes 21,139,201,carrot
17,136,195,grapes 17,136,195,carrot
33,139,203,grapes 33,139,203,carrot
22,133,201,grapes 22,133,201,carrot
32,130,196,grapes 32,130,196,carrot
37,135,205,grapes 37,135,205,carrot
15,140,195,grapes 15,140,195,carrot
39,132,196,grapes 39,132,196,carrot
40,121,199,grapes 40,121,199,carrot
40,132,202,grapes 40,132,202,carrot
29,142,203,grapes 29,142,203,carrot
32,121,199,grapes 32,121,199,carrot
6,140,205,grapes 6,140,205,carrot
8,120,196,grapes 8,120,196,carrot
34,133,202,grapes 34,133,202,carrot
35,135,199,grapes 35,135,199,carrot
16,145,199,grapes 16,145,199,carrot
8,136,201,grapes 8,136,201,carrot
25,129,195,grapes 25,129,195,carrot
16,130,201,grapes 16,130,201,carrot
39,129,203,grapes 39,129,203,carrot
38,135,203,grapes 38,135,203,carrot
33,120,205,grapes 33,120,205,carrot
35,125,204,grapes 35,125,204,carrot
1,132,200,grapes 1,132,200,carrot
39,140,203,grapes 39,140,203,carrot
28,145,202,grapes 28,145,202,carrot
6,128,200,grapes 6,128,200,carrot
6,139,199,grapes 6,139,199,carrot
29,122,196,grapes 29,122,196,carrot
37,144,197,grapes 37,144,197,carrot
38,120,197,grapes 38,120,197,carrot
38,141,198,grapes 38,141,198,carrot
14,121,203,grapes 14,121,203,carrot
6,125,204,grapes 6,125,204,carrot
32,138,197,grapes 32,138,197,carrot
11,124,204,grapes 11,124,204,carrot
23,138,200,grapes 23,138,200,carrot
40,143,201,grapes 40,143,201,carrot
6,142,202,grapes 6,142,202,carrot
37,124,195,grapes 37,124,195,carrot
35,134,204,grapes 35,134,204,carrot
119,25,51,watermelon 119,25,51,watermelon
119,19,55,watermelon 119,19,55,watermelon
105,30,50,watermelon 105,30,50,watermelon
...@@ -1499,106 +1499,106 @@ ...@@ -1499,106 +1499,106 @@
106,21,52,muskmelon 106,21,52,muskmelon
90,15,52,muskmelon 90,15,52,muskmelon
106,16,54,muskmelon 106,16,54,muskmelon
24,128,196,apple 24,128,196,rice
7,144,197,apple 7,144,197,rice
14,128,205,apple 14,128,205,rice
8,120,201,apple 8,120,201,rice
20,129,201,apple 20,129,201,rice
32,137,204,apple 32,137,204,rice
27,139,205,apple 27,139,205,rice
0,123,205,apple 0,123,205,rice
22,144,196,apple 22,144,196,rice
1,124,199,apple 1,124,199,rice
30,122,197,apple 30,122,197,rice
29,121,196,apple 29,121,196,rice
13,126,204,apple 13,126,204,rice
9,139,199,apple 9,139,199,rice
0,133,200,apple 0,133,200,rice
30,143,199,apple 30,143,199,rice
36,140,198,apple 36,140,198,rice
37,137,199,apple 37,137,199,rice
33,121,203,apple 33,121,203,rice
7,144,195,apple 7,144,195,rice
35,128,205,apple 35,128,205,rice
29,128,198,apple 29,128,198,rice
2,143,196,apple 2,143,196,rice
34,140,198,apple 34,140,198,rice
29,144,204,apple 29,144,204,rice
32,141,203,apple 32,141,203,rice
13,144,197,apple 13,144,197,rice
25,143,198,apple 25,143,198,rice
9,137,200,apple 9,137,200,rice
6,144,198,apple 6,144,198,rice
37,126,196,apple 37,126,196,rice
2,120,203,apple 2,120,203,rice
11,143,197,apple 11,143,197,rice
10,141,201,apple 10,141,201,rice
24,142,202,apple 24,142,202,rice
23,138,195,apple 23,138,195,rice
18,125,204,apple 18,125,204,rice
13,121,196,apple 13,121,196,rice
26,122,202,apple 26,122,202,rice
28,123,202,apple 28,123,202,rice
26,121,201,apple 26,121,201,rice
21,137,196,apple 21,137,196,rice
21,135,198,apple 21,135,198,rice
5,144,205,apple 5,144,205,rice
2,123,205,apple 2,123,205,rice
15,133,199,apple 15,133,199,rice
31,130,198,apple 31,130,198,rice
25,143,200,apple 25,143,200,rice
16,143,204,apple 16,143,204,rice
19,122,202,apple 19,122,202,rice
10,125,196,apple 10,125,196,rice
20,139,202,apple 20,139,202,rice
28,123,198,apple 28,123,198,rice
28,136,200,apple 28,136,200,rice
2,131,199,apple 2,131,199,rice
2,140,197,apple 2,140,197,rice
27,138,201,apple 27,138,201,rice
30,127,204,apple 30,127,204,rice
32,145,203,apple 32,145,203,rice
29,139,205,apple 29,139,205,rice
26,126,195,apple 26,126,195,rice
40,136,202,apple 40,136,202,rice
6,124,200,apple 6,124,200,rice
35,138,200,apple 35,138,200,rice
17,136,196,apple 17,136,196,rice
33,134,205,apple 33,134,205,rice
16,143,197,apple 16,143,197,rice
27,120,200,apple 27,120,200,rice
29,145,205,apple 29,145,205,rice
3,141,197,apple 3,141,197,rice
15,123,204,apple 15,123,204,rice
5,136,195,apple 5,136,195,rice
10,136,204,apple 10,136,204,rice
7,141,195,apple 7,141,195,rice
2,129,201,apple 2,129,201,rice
29,138,197,apple 29,138,197,rice
30,137,200,apple 30,137,200,rice
29,132,204,apple 29,132,204,rice
14,139,197,apple 14,139,197,rice
18,125,203,apple 18,125,203,rice
33,143,204,apple 33,143,204,rice
40,144,196,apple 40,144,196,rice
9,143,197,apple 9,143,197,rice
38,135,203,apple 38,135,203,rice
28,130,196,apple 28,130,196,rice
35,142,203,apple 35,142,203,rice
12,129,205,apple 12,129,205,rice
1,135,203,apple 1,135,203,rice
0,145,205,apple 0,145,205,rice
31,121,201,apple 31,121,201,rice
35,131,203,apple 35,131,203,rice
29,140,195,apple 29,140,195,rice
33,138,198,apple 33,138,198,rice
14,140,197,apple 14,140,197,rice
35,145,195,apple 35,145,195,rice
40,120,197,apple 40,120,197,rice
25,132,198,apple 25,132,198,rice
31,137,196,apple 31,137,196,rice
36,144,196,apple 36,144,196,rice
10,140,197,apple 10,140,197,rice
22,30,12,orange 22,30,12,orange
37,6,13,orange 37,6,13,orange
27,13,6,orange 27,13,6,orange
...@@ -2099,103 +2099,103 @@ ...@@ -2099,103 +2099,103 @@
90,39,37,jute 90,39,37,jute
90,39,43,jute 90,39,43,jute
84,38,43,jute 84,38,43,jute
91,21,26,coffee 91,21,26,potato
107,21,26,coffee 107,21,26,potato
83,38,35,coffee 83,38,35,potato
108,24,31,coffee 108,24,31,potato
116,28,34,coffee 116,28,34,potato
116,23,25,coffee 116,23,25,potato
109,31,27,coffee 109,31,27,potato
89,25,34,coffee 89,25,34,potato
118,18,32,coffee 118,18,32,potato
111,32,34,coffee 111,32,34,potato
84,36,28,coffee 84,36,28,potato
85,33,25,coffee 85,33,25,potato
99,15,27,coffee 99,15,27,potato
81,30,31,coffee 81,30,31,potato
95,39,29,coffee 95,39,29,potato
81,34,30,coffee 81,34,30,potato
80,15,28,coffee 80,15,28,potato
104,20,26,coffee 104,20,26,potato
109,29,28,coffee 109,29,28,potato
100,32,26,coffee 100,32,26,potato
100,24,28,coffee 100,24,28,potato
83,21,28,coffee 83,21,28,potato
120,23,28,coffee 120,23,28,potato
104,26,30,coffee 104,26,30,potato
108,33,31,coffee 108,33,31,potato
91,25,26,coffee 91,25,26,potato
86,26,27,coffee 86,26,27,potato
98,18,27,coffee 98,18,27,potato
111,27,31,coffee 111,27,31,potato
84,39,35,coffee 84,39,35,potato
98,27,27,coffee 98,27,27,potato
118,21,34,coffee 118,21,34,potato
103,27,31,coffee 103,27,31,potato
82,24,33,coffee 82,24,33,potato
86,31,35,coffee 86,31,35,potato
88,35,35,coffee 88,35,35,potato
84,27,29,coffee 84,27,29,potato
120,40,33,coffee 120,40,33,potato
106,40,30,coffee 106,40,30,potato
113,21,33,coffee 113,21,33,potato
117,34,25,coffee 117,34,25,potato
80,30,25,coffee 80,30,25,potato
88,21,27,coffee 88,21,27,potato
113,33,34,coffee 113,33,34,potato
87,23,28,coffee 87,23,28,potato
113,15,29,coffee 113,15,29,potato
98,29,30,coffee 98,29,30,potato
97,29,27,coffee 97,29,27,potato
85,35,32,coffee 85,35,32,potato
82,29,35,coffee 82,29,35,potato
103,33,25,coffee 103,33,25,potato
112,17,28,coffee 112,17,28,potato
99,19,33,coffee 99,19,33,potato
120,20,34,coffee 120,20,34,potato
114,27,28,coffee 114,27,28,potato
100,40,35,coffee 100,40,35,potato
108,35,25,coffee 108,35,25,potato
115,31,30,coffee 115,31,30,potato
87,28,30,coffee 87,28,30,potato
82,24,26,coffee 82,24,26,potato
94,26,27,coffee 94,26,27,potato
87,28,35,coffee 87,28,35,potato
118,40,35,coffee 118,40,35,potato
87,38,29,coffee 87,38,29,potato
92,40,30,coffee 92,40,30,potato
97,22,26,coffee 97,22,26,potato
99,40,32,coffee 99,40,32,potato
89,28,33,coffee 89,28,33,potato
112,39,29,coffee 112,39,29,potato
111,28,26,coffee 111,28,26,potato
114,20,26,coffee 114,20,26,potato
117,26,30,coffee 117,26,30,potato
111,29,31,coffee 111,29,31,potato
119,30,28,coffee 119,30,28,potato
116,40,33,coffee 116,40,33,potato
95,37,35,coffee 95,37,35,potato
86,40,33,coffee 86,40,33,potato
117,37,32,coffee 117,37,32,potato
105,18,35,coffee 105,18,35,potato
109,23,25,coffee 109,23,25,potato
80,18,31,coffee 80,18,31,potato
101,31,26,coffee 101,31,26,potato
103,33,33,coffee 103,33,33,potato
93,26,27,coffee 93,26,27,potato
104,35,28,coffee 104,35,28,potato
116,36,25,coffee 116,36,25,potato
107,38,29,coffee 107,38,29,potato
101,33,33,coffee 101,33,33,potato
107,31,31,coffee 107,31,31,potato
99,16,30,coffee 99,16,30,potato
103,40,30,coffee 103,40,30,potato
118,31,34,coffee 118,31,34,potato
106,21,35,coffee 106,21,35,potato
116,38,34,coffee 116,38,34,potato
97,35,26,coffee 97,35,26,potato
107,34,32,coffee 107,34,32,potato
99,15,27,coffee 99,15,27,potato
118,33,30,coffee 118,33,30,potato
117,32,34,coffee 117,32,34,potato
104,18,30,coffee 104,18,30,potato
\ No newline at end of file \ No newline at end of file
from flask import Flask, request, jsonify from flask import Flask, request, jsonify
import joblib import joblib
import pandas as pd import pandas as pd
from sklearn.metrics import accuracy_score from sklearn.metrics import accuracy_score
import pymongo as pymongo
model = joblib.load('./soil_crop_model.joblib') # Load your trained model
model = joblib.load('./random_forest_model_v2.joblib')
eval_data = pd.read_csv('soil_crop.csv') eval_data = pd.read_csv('soil_crop.csv')
eval_X = eval_data[['nitrogen', 'phosphorus', 'potassium']] eval_X = eval_data[['nitrogen', 'phosphorus', 'potassium']]
eval_y = eval_data['crop'] eval_y = eval_data['crop']
predicted_labels = model.predict(eval_X) # Predict probabilities for all classes
predicted_probabilities = model.predict_proba(eval_X)
accuracy = accuracy_score(eval_y, predicted_labels)
app = Flask(__name__) app = Flask(__name__)
mongo_client = pymongo.MongoClient("mongodb+srv://anjana:8682123abc@cluster0.bhsdkyx.mongodb.net/?retryWrites=true&w=majority")
db = mongo_client["AgriExpertSolutions"]
collection = db["organic_solutions"]
# Function to calculate the mean N, P, K values for a given crop
def get_mean_values_for_crop(crop_name):
crop_data = eval_data[eval_data['crop'] == crop_name]
if not crop_data.empty:
mean_values = crop_data[['nitrogen', 'phosphorus', 'potassium']].mean()
return mean_values.to_dict()
else:
return None
@app.route('/predict', methods=['POST']) @app.route('/predict', methods=['POST'])
def predict(): def predict():
input_data = request.get_json() input_data = request.get_json()
...@@ -22,13 +36,111 @@ def predict(): ...@@ -22,13 +36,111 @@ def predict():
phosphorus = input_data['P'] phosphorus = input_data['P']
potassium = input_data['K'] potassium = input_data['K']
predicted_crop = model.predict([[nitrogen, phosphorus, potassium]]) # Predict probabilities for the input data
predicted_probabilities = model.predict_proba([[nitrogen, phosphorus, potassium]])
# Get the classes (crops) and their corresponding probabilities
classes = model.classes_
probabilities = predicted_probabilities[0]
# Create a list to store crop information as objects
crop_info = []
for crop, probability in zip(classes, probabilities):
crop_info.append({
'crop': crop,
'probability': probability
})
# Sort the crops by probability in descending order
sorted_crops = sorted(crop_info, key=lambda x: x['probability'], reverse=True)
# Get the top three crops
top_three_crops = sorted_crops[:3]
response = { response = {
'crop': predicted_crop[0], 'top_three_crops': top_three_crops,
'accuracy': accuracy 'accuracy': accuracy_score(eval_y, model.predict(eval_X)) # Calculate accuracy on evaluation data
} }
return jsonify(response) return jsonify(response)
@app.route('/mean_values/<crop_name>', methods=['GET'])
def get_mean_values(crop_name):
mean_values = get_mean_values_for_crop(crop_name)
if mean_values is not None:
return jsonify(mean_values)
else:
return jsonify({'error': 'Crop not found'}), 404
@app.route('/balancesoil', methods=['POST'])
def balance_soil():
input_data = request.get_json()
nitrogen_soil = input_data['N']
phosphorus_soil = input_data['P']
potassium_soil = input_data['K']
crop = input_data['crop']
# Get the mean nutrient values for the specified crop
mean_values = get_mean_values_for_crop(crop)
if mean_values is not None:
# Calculate the differences between soil values and mean values
nitrogen_diff = mean_values['nitrogen'] - nitrogen_soil
phosphorus_diff = mean_values['phosphorus'] - phosphorus_soil
potassium_diff = mean_values['potassium'] - potassium_soil
# Create a dictionary to store the lacking nutrient values
lacking_nutrients = {}
# Fetch the instructions for each nutrient deficiency from the database
if nitrogen_diff > 0:
nitrogen_instructions = list(collection.find({"target_nutrient": "Nitrogen"}))
lacking_nutrients['nitrogen'] = nitrogen_diff
lacking_nutrients['nitrogen_instructions'] = [{'description': ins['description'], 'recommendedApplication': ins['recommendedApplication']} for ins in nitrogen_instructions]
if phosphorus_diff > 0:
phosphorus_instructions = list(collection.find({"target_nutrient": "Phosphorus"}))
lacking_nutrients['phosphorus'] = phosphorus_diff
lacking_nutrients['phosphorus_instructions'] = [{'description': ins['description'], 'recommendedApplication': ins['recommendedApplication']} for ins in phosphorus_instructions]
if potassium_diff > 0:
potassium_instructions = list(collection.find({"target_nutrient": "Potassium"}))
lacking_nutrients['potassium'] = potassium_diff
lacking_nutrients['potassium_instructions'] = [{'description': ins['description'], 'recommendedApplication': ins['recommendedApplication']} for ins in potassium_instructions]
return jsonify(lacking_nutrients)
else:
return jsonify({'error': 'Crop not found'}), 404
@app.route('/add_solution', methods=['POST'])
def add_solution():
input_data = request.get_json()
print(input_data)
# Extract data from the request
name = input_data.get('name')
description = input_data.get('description')
target_nutrient = input_data.get('target_nutrient')
recommended_application = input_data.get('recommended_application')
# Insert the data into the MongoDB collection
new_solution = {
'name': name,
'description': description,
'target_nutrient': target_nutrient,
'recommendedApplication': recommended_application
}
# Insert the document into the collection
result = collection.insert_one(new_solution)
if result.inserted_id:
return jsonify({'message': 'Solution added successfully'})
else:
return jsonify({'message': 'Failed to add solution'}), 500
if __name__ == '__main__': if __name__ == '__main__':
app.run() app.run()
import pandas as pd
# Read the CSV file into a Pandas DataFrame
df = pd.read_csv('soil_crop.csv')
# Divide the values in the "nitrogen," "phosphorus," and "potassium" columns by 10
df['nitrogen'] = df['nitrogen'] / 10
df['phosphorus'] = df['phosphorus'] / 10
df['potassium'] = df['potassium'] / 10
# Save the new dataset to a new CSV file
df.to_csv('new_soil_data.csv', index=False)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment